HTTP 406 Klaida, kai naudojant kampinis $http.get nuo SharePoint poilsio hipotezes

Atnaujinimas: Marc AD ndersson nurodė šį puikus gabalas, info: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-Released/. Tai paaiškina daug :).

Tai gali būti blogiausiu žinutę pavadinimas kada nors! Anyhoo.

Paprastai aš visus mano prototipų prieš O365 egzempliorius. Aš turiu mano asmens instancijos, kad man nereikės nerimauti dėl įtakos kas nors. Kaip panaikinti – prisiminti Kada mes vadiname atliktas aplink virtualios mašinos mūsų nešiojamieji kompiuteriai su MOSS – SQL serverio, IIS, SPRENDŽIAMOSIOS Hyper-V vs. VMWare? Anyhoo...

Man buvo sukurtas naudojant judesio kiekio šioje aplinkoje, kuri nėra app, be kita ko, tai:

$http.get(serverUrl)
.sėkmės(funkcija(duomenų, statusas, antraštės, Config) {

var getLinksResponse = duomenys;

getLinksResponse.value.forEach(funkcija(theResult) {

// ir taip puta

Tai dirbo tik baudą dviejų skirtingų SharePoint online aplinkoje. Tačiau, Kada mano kolega jis perkeltas į Cloudshare instancijos, jis buvo gauti, HTTP 406 klaida (kuris buvo pirmą kartą aš kada nors gavo, kad vienas, Taigi... yay, tikriausiai). Mes padarėme šiek tiek mokslinių tyrimų ir pastebėjau, kad "Priimti" antraštė buvo ne. SharePoint internete buvo visiškai laimingas su:

Priimti: paraiškos/json

Bet cloudshare atveju (kuri yra SP prem, vyko virtualiame serveryje) norėjo klasikinis "odata = kalbantys" įrašyti, taip pat:

Priimti: paraiškos/json;oData = kalbantys

Nustatyti, kad, Mes pridėjome antraštėje tokiais:

var config = {antraštės: {
"Priimti": "paraiškos/json;oData = kalbantys "
}
};

$http.get(serverUrl,Config)
.sėkmės(funkcija(duomenų, statusas, antraštės, Config) {

var getLinksResponse = duomenys;

getLinksResponse.value.forEach(funkcija(theResult) {

// ir taip puta

Kad atsikratyti, kad 406, Tačiau ji taip pat pakeitė formatą, atsakymas. Tai buvo daugiau... kalbantys. (Haha!) Daugiau pakeitimų buvo reikalaujama ir Štai galutinis rezultatas:

var config = {antraštės: {
"Priimti": "paraiškos/json;oData = kalbantys "
}
};

$http.get(serverUrl,Config)
.sėkmės(funkcija(duomenų, statusas, antraštės, Config) {

var getLinksResponse = duomenys;

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

// ir taip puta

Tai tik pasuko į a 30 minutę problema mums, Taigi mes lucked. Tikimės, kad kas nors mano, kad tai naudinga.

</pabaigos>

2 mintys apie "HTTP 406 Klaida, kai naudojant kampinis $http.get nuo SharePoint poilsio hipotezes

Palik atsakymą į Paul Galvin Atšaukti atsakymą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *