Actualizare: Marc AD ndersson a subliniat această bucată mare de informaţii: http://blogs.Office.com/2014/08/13/JSON-Light-support-rest-SharePoint-API-released/. Care explică mult :).
Care ar putea fi mai rău titlul un blog post vreodată! Anyhoo.
De obicei face tot de meu prototipuri împotriva o instanta O365. Am meu instanţă personale, astfel încât nu trebuie să fie îngrijorat de oricine altcineva care afectează. Ca o deoparte-amintesc când am apel efectuate în jurul maşinilor virtuale pe laptop-urile noastre cu muşchi – SQL Server, IIS, se decide Hyper-V vs. VMWare? Anyhoo...
Am dezvoltat un app folosind unghiulară în acest mediu care face, Printre alte lucruri, Acest lucru:
$http.get(serverUrl)
.succesul(funcţia(date, statutul, anteturi, config) {var getLinksResponse = datele;
getLinksResponse.value.forEach(funcţia(Rezultatul) {
// şi aşa mai departe şi astfel încât spuma
Acest lucru a fost de lucru bine în două medii diferite SharePoint online. Cu toate acestea, când colegul meu l-a portat la o instanţă de Cloudshare, El a fost obtinerea o HTTP 406 eroare (care a fost prima dată am ajuns vreodată că unul, Deci... yay, bănuiesc). Am facut un pic de cercetare şi am observat că antetul "Accepta" a fost oprit. SharePoint online a fost perfect fericit cu:
Accepta: cerere/json
Dar instanta cloudshare (care este SP prem, Găzduit într-un server virtual) vrut clasic "odata = verbose" adăugat în, precum şi:
Accepta: cerere/json;Odata = verbose
Pentru a stabili că, am adăugat antetul ca atare:
var config = {anteturi: {
"Accept": ' cerere/json;Odata = verbose'
}
};$http.get(serverUrl,config)
.succesul(funcţia(date, statutul, anteturi, config) {var getLinksResponse = datele;
getLinksResponse.value.forEach(funcţia(Rezultatul) {
// şi aşa mai departe şi astfel încât spuma
Că am scăpat de 406, dar, de asemenea, modificat formatul de răspuns. A fost mai mult... "vorbaret". (haha!) Mai multe modificări au fost necesare şi aici este rezultatul final:
var config = {anteturi: {
"Accept": ' cerere/json;Odata = verbose'
}
};$http.get(serverUrl,config)
.succesul(funcţia(date, statutul, anteturi, config) {var getLinksResponse = datele;
getLinksResponse.d.results.forEach(funcţia(Rezultatul) {
// şi aşa mai departe şi astfel încât spuma
Acest lucru doar sa transformat într-un 30 problema minut pentru noi, asa ca am avut ghinion. Sperăm că cineva aceasta constată utile.
</scop>