Оновлення: Марк оголошення ndersson вказав на цей великий шматок інформація: http://Blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-Released/. Це багато що пояснює :).
Що може бути коли-небудь найгірших заголовок повідомлення в блозі! Anyhoo.
Я зазвичай робити всі мої Прототипування проти O365 екземпляр. У мене є моє особисте екземпляр так що я не повинні бути турбуюся про зачіпають будь-хто інший. Як у бік – пам'ятаєте, коли ми закликаємо рознесену навколо віртуальних машин наші ноутбуки з МОСС-SQL Server, IIS, Вирішивши проти Hyper-V. VMWare? Anyhoo...
Я розробив програму за допомогою кутових в цьому середовищі, що робить, серед іншого, Це:
$HTTP.Get(serverUrl)
.успіх(функція(дані, статус, заголовки, Config) {VAR getLinksResponse = даних;
getLinksResponse.value.forEach(функція(theResult) {
// і так далі і так піни
Це працює лише штрафом у двох різних середовищах онлайн SharePoint. Однак, Коли, мій колега портовано на Cloudshare екземпляр, він отримував послугами HTTP 406 помилка (яка була в перший раз я коли-небудь отримав що один, так.. Яй, Я гадаю). Ми зробили кілька досліджень і зауважив, що заголовку «Прийняти» був відключений. SharePoint онлайн була абсолютно щаслива зі:
Прийняти: застосування/json
Але cloudshare екземпляр (яка містить SP прем, відбулася у віртуальному сервері) хотів класичний "odata = verbose" додані також:
Прийняти: застосування/json;odata = verbose
Щоб виправити, що, Ми додали заголовка таким чином:
VAR config = {заголовки: {
"Приймати": ' застосування/json;odata = verbose'
}
};$HTTP.Get(serverUrl,Config)
.успіх(функція(дані, статус, заголовки, Config) {VAR getLinksResponse = даних;
getLinksResponse.value.forEach(функція(theResult) {
// і так далі і так піни
Що позбулися на 406, але це також змінив формат відповідь. Це було більше.. verbose. (Ха-ха!) Більше змін були необхідні і ось кінцевий результат:
VAR config = {заголовки: {
"Приймати": ' застосування/json;odata = verbose'
}
};$HTTP.Get(serverUrl,Config)
.успіх(функція(дані, статус, заголовки, Config) {VAR getLinksResponse = даних;
getLinksResponse.d.results.forEach(функція(theResult) {
// і так далі і так піни
Це тільки перетворився на 30 хвилина проблема для нас, так ми пощастило. Ми сподіваємося хтось вважає, що це корисна.
</кінець>