HTTP 406 Kļūda, lietojot leņķa $http.get pret SharePoint atpūtas beigu punktiem

Atjauninājums: Marc AD ndersson norādīja uz šo lielisko info gabals: http://Blogs.Office.com/2014/08/13/JSON-Light-Support-Rest-SharePoint-API-Released/. Tas izskaidro daudz :).

Tas var būt sliktākais nosaukums blog post jebkad! Anyhoo.

Es parasti darīt visu manu prototipu pret O365 instances. Man ir mana personīgā gadījumu tāpēc, ka man nav jāuztraucas par to ietekmē kāds cits. Kā malā – atcerieties, kad mēs saucam veic ap virtuālās mašīnas mūsu klēpjdatorus ar SŪNĀM-SQL Server, IIS, izlemt, Hyper-V vs. VMWare? Anyhoo...

Bija izveidojies app izmantojot leņķisko šajā vidē, kas, cita starpā, tas:

$http.Get(serverUrl)
.panākumi(funkcija(datu, statuss, galvenes, Config) {

var getLinksResponse = dati;

getLinksResponse.value.forEach(funkcija(theResult) {

// un tā tālāk, un tā putas

Tas strādā tikai naudas sodu divus dažādus SharePoint tiešsaistes vidē. Tomēr, kad mans kolēģis pārnesuši Cloudshare instances, viņš kļūst HTTP 406 kļūda (kas bija pirmā reize, kad es kādreiz ieguva, ka viens, Tātad... yay, man šķiet). Mums bija pētniecības mazliet un pamanīja, ka "Akceptēt" header ir izslēgts. SharePoint tiešsaistē bija pilnīgi apmierināts ar:

Akceptēt: pieteikums/json

Bet cloudshare instances (kas atrodas prem SP, hosted virtuālā servera) gribēja klasisko "odata = runīgs" papildina arī:

Akceptēt: pieteikums/json;oData = runīgs

Noteikt, ka, mēs pievienojām header kā tādu:

var config = {galvenes: {
"Pieņemt": "lietojumprogrammu/json;oData = runīgs "
}
};

$http.Get(serverUrl,Config)
.panākumi(funkcija(datu, statuss, galvenes, Config) {

var getLinksResponse = dati;

getLinksResponse.value.forEach(funkcija(theResult) {

// un tā tālāk, un tā putas

Ka ticis vaļā no 406, bet to arī mainīt atbildes formāts. Tas bija vairāk … runīgs. (haha!) Nebija vajadzīgas vairākas izmaiņas, un šeit ir gala rezultāts:

var config = {galvenes: {
"Pieņemt": "lietojumprogrammu/json;oData = runīgs "
}
};

$http.Get(serverUrl,Config)
.panākumi(funkcija(datu, statuss, galvenes, Config) {

var getLinksResponse = dati;

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

// un tā tālāk, un tā putas

Tas tikai pārvērtās 30 minūte problēma ne tikai mums, tāpēc mēs tiksim cauri sveikā. Cerams, ka kāds atrod šo noderīga.

</beigās>

2 domas par "HTTP 406 Kļūda, lietojot leņķa $http.get pret SharePoint atpūtas beigu punktiem

atstāt atbildi

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti *