Arsip bulanan: Januari 2015

HTTP 406 Kesalahan saat menggunakan sudut $http.get terhadap SharePoint seluruh titik akhir

Update: Marc AD ndersson menunjukkan sepotong besar info: http://Blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-api-Released/. Itu menjelaskan banyak hal :).

Itu mungkin judul posting blog terburuk pernah! Anyhoo.

Saya biasanya melakukan semua saya prototyping terhadap O365 instance. Aku punya contoh pribadi saya sehingga saya tidak perlu khawatir tentang mempengaruhi orang lain. Sebagai samping-ingat saat kami panggilan dilakukan di sekitar mesin virtual pada laptop kami dengan Lumut-SQL Server, IIS, memutuskan vs Hyper-V. VMWare? Anyhoo...

Saya telah mengembangkan sebuah aplikasi yang menggunakan sudut dalam lingkungan ini yang melakukan, di antara hal lain, ini:

$http.Get(serverUrl)
.sukses(fungsi(data, status, header, config) {

var getLinksResponse = data;

getLinksResponse.value.forEach(fungsi(theResult) {

// dan seterusnya dan jadi buih

Ini bekerja baik di dua berbeda SharePoint online lingkungan. Namun, Ketika rekan saya porting ke Cloudshare instance, Ia mendapatkan HTTP 406 kesalahan (yang adalah pertama kalinya saya pernah punya satu, Jadi... yay, Saya rasa). Kami melakukan sedikit riset dan melihat bahwa header "Menerima" adalah off. SharePoint online adalah sangat senang dengan:

Menerima: aplikasi json

Tetapi contoh cloudshare (yang merupakan SP pada prem, host di virtual server) ingin klasik "odata = verbose" ditambahkan dalam juga:

Menerima: aplikasi json;oData = verbose

Untuk memperbaikinya, Kami menambahkan header seperti:

var config = {header: {
'Menerima': ' aplikasi json;oData = verbose'
}
};

$http.Get(serverUrl,config)
.sukses(fungsi(data, status, header, config) {

var getLinksResponse = data;

getLinksResponse.value.forEach(fungsi(theResult) {

// dan seterusnya dan jadi buih

Yang menyingkirkan 406, Tapi itu juga mengubah format respon. Itu lebih... verbose. (Haha!) Lebih banyak perubahan yang diperlukan dan di sini adalah hasil akhir:

var config = {header: {
'Menerima': ' aplikasi json;oData = verbose'
}
};

$http.Get(serverUrl,config)
.sukses(fungsi(data, status, header, config) {

var getLinksResponse = data;

getLinksResponse.d.Results.forEach(fungsi(theResult) {

// dan seterusnya dan jadi buih

Ini hanya berubah menjadi 30 menit masalah bagi kita, Jadi kita beruntung. Mudah-mudahan seseorang menemukan ini berguna.

</akhir>

Bagaimana-untuk: Mengaktifkan beberapa sudut SharePoint Web Bagian pada halaman yang sama

Blog ini posting menjelaskan bagaimana Anda dapat memiliki beberapa Angular.js berbasis SharePoint web bagian (direferensikan melalui bagian web content editor) pada halaman yang sama. Aku memanggil editor konten web bagian (CEWP) itu referensi JavaScript yang dibangun menggunakan kerangka Angular.js "sudut Web bagian."

Sudut 's bootstrap proses super mudah dan hampir setiap contoh yang Anda temukan di the internets pergi sesuatu seperti ini:

<HTML ng-app = 'myApp'>

<bla /><bla /><bla />

</HTML>

Ini rusak, Namun, Jika Anda ingin mengaktifkan beberapa CEWP mewakili beberapa sudut web bagian pada halaman yang sama. Sudut akan hanya secara otomatis bootstrap terhadap direktif ng-app pertama itu menemukan – setidaknya pada sudut versi 1.3.6. Solusinya cukup sederhana – secara manual bootstrap kode Anda sebaliknya. Atas sekarang berubah menjadi sesuatu seperti ini:

<bodyHTMLan >>< kuat > pesan yang kuat.</strong> </body> </html> ">
<d
IV id =”bootstrapHere” ng-controller =”myController sebagai theController”>
<bla /><bla /><bla />
</div>
</bodyHTMLan >>< kuat > pesan yang kuat.</strong> </body> </html> ">

<script src =”//Ajax.googleapis.com/Ajax/libs/angularjs/1.3.6/angular.js”></script>

<script>
angular.bootstrap(angular.Element(document.getElementById(“bootstrapHere”)),['myApp']);
</script>

Pada dasarnya, Alih-alih menggunakan ng-app pada elemen untuk melakukan bootstrap Anda, Anda menampar ID ke elemen. Kemudian, menggunakan bootstrap() metode pada sudut itu sendiri untuk mengendalikan bootstrap proses pada saat run-time. Saya telah menguji ini dengan tiga bagian web sudut yang berbeda pada halaman yang sama dan kerjanya pesona.

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin