Update: Marc AD Ndersson wies darauf hin, dieses großartige Stück info: http://Blogs.Office.com/2014/08/13/JSON-Light-Support-Rest-SharePoint-API-Released/. Das erklärt einiges :).
Das ist der schlechteste Titel der einen Blog-Post je! Wie auch immer.
Ich tun in der Regel alle meine Prototypen gegen eine O365-Instanz. Ich habe meine persönliche Instanz, so dass ich nicht besorgt über die Auswirkungen auf jemand anderes sein. Als Nebenwirkung – denken Sie daran, wenn wir für unsere Laptops mit Moos – durchgeführt, um virtuelle Maschinen aufrufen SQL Server, IIS, Entscheidung über Hyper-V-vs. VMWare? Wie auch immer...
Ich hatte eine app mit Angular in diesem Umfeld, das entwickelt, unter anderem, Dies:
$http.Get(serverUrl)
.Erfolg(Funktion(Daten, Status, Header, config) {Var GetLinksResponse = Daten;
getLinksResponse.value.forEach(Funktion(i) {
// und so weiter und so Schaum
Dies war nur in zwei verschiedenen SharePoint online-Umgebungen adaequat. Jedoch, Wenn es mein Kollege auf eine Cloudshare-Instanz portiert., Er war immer ein HTTP 406 Fehler (Das war das erste Mal habe ich nie, dass man, Also... Yay, Ich vermute). Wir haben ein wenig Forschung und bemerkte, dass die "Accept"-Header Weg war. SharePoint online war vollkommen zufrieden mit:
Akzeptieren: Application/json
Aber die Cloudshare Instanz (Prem ist die SP, auf einem virtuellen Server gehostet) wollte das klassische "promoveaza = verbose" sowie in hinzugefügt:
Akzeptieren: Application/json;promoveaza = verbose
Zu reparieren, Wir haben den Header als solche:
Var-Config = {Header: {
'Akzeptieren': "Application/Json;promoveaza = verbose'
}
};$http.Get(serverUrl,config)
.Erfolg(Funktion(Daten, Status, Header, config) {Var GetLinksResponse = Daten;
getLinksResponse.value.forEach(Funktion(i) {
// und so weiter und so Schaum
Entledigte sich die 406, aber auch das Format der Antwort geändert. Es war mehr... ausführlich. (haha!) Weitere Änderungen sind erforderlich, und hier ist das Endergebnis:
Var-Config = {Header: {
'Akzeptieren': "Application/Json;promoveaza = verbose'
}
};$http.Get(serverUrl,config)
.Erfolg(Funktion(Daten, Status, Header, config) {Var GetLinksResponse = Daten;
getLinksResponse.d.results.forEach(Funktion(i) {
// und so weiter und so Schaum
Es stellte sich nur in einem 30 Minute Problem für uns, so dass wir Glück gehabt. Hoffentlich findet jemand diese nützliche.
</Ende>
Paul:
Ich denke, dass Sie erwischt wurden, durch die JSON-lite Option erklärt in diesem Beitrag auf die Office-Blogs:
http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/
Seit dieser Änderung, Wenn Sie keinen Wert angeben, der Standardwert ist minimalmetadata. Ich glaube nicht, dass diese es auf lokale Installationen noch gemacht hat, damit die Trennung.
M.
Vielen Dank! Das ist große info.