2015-07-20 1 views
0

Нужна помощь в sharepoint 2013 Rest API с Ajax Call.Нужна помощь в sharepoint 2013 API для отдыха с Ajax Call

Я пытаюсь прочитать элементы списка с сайта публикации на сайт команды. Оба сайта находятся в разных семействах сайтов.

Приведенный ниже код работает в Internet Explorer, а не в Google Chrome.

$(document).ready(function() { 
    $.support.cors = true; 
    $.ajax({ 
     url:"http://icon.heart.com/WorkTools/Organization/Claim/_api/web/lists/getByTitle('Claims Links')/items?$top=200", 
     type:"GET", 
     headers:{"accept":"application/json;odata=verbose"}, 
     dataType: "json", 
     success: function(data){ alert("pass")} 
     error: function(Data){ alert ("Fail");} 
    }); 
}); 

Ответ был Http код состояния 401. Погрешность от $.ajax запросу

Не удалось загрузить ресурс: сервер не ответил со статусом 401 (несанкционированного)

Ошибка 2:

XML HttpRequest Не удается загрузить Нет ' В запрошенном ресурсе присутствует заголовок Access-control-Allow-Origin. Поэтому Oringin 'url' не допускается.

У меня нет доступа к серверам. Мне нужно попробовать только с помощью редактора сценариев на странице SharePoint 2013.

+0

Какая ошибка возвращается Chrome/Firefox и какую версию IE вы используете? –

+0

@ Daniel - ошибка 1: не удалось загрузить ресурс: сервер ответил со статусом 401 (неавторизованный) ошибка 2: XML HTtpRequest Canot load Нет заголовка «Access-control-Allow-Origin» присутствует на запрошенный ресурс. Oringin 'url' для этого не допускается. У респинга был Http Status code 401 \t К сожалению, у меня нет доступа к серверам. Я должен исправить это с помощью элементов управления OOB.Я использую редактор сценариев в Sharepoint 2013, чтобы запустить это! Есть идеи ? –

ответ

0

Скорее всего это происходит, так как Chrome отказывается установить заголовок для запроса CORS. Он даже не позволит вам явно переопределить заголовок Origin. В основном это приводит к тому, что сервер видит Origin: null, что в большинстве случаев составляет 403. По-видимому, IE/Firefox не имеет такого ограничения.

В качестве временного решения в случае SharePoint локальной вы можете установить custom header в web.config:

<customHeaders> 
    <add name="Access-Control-Allow-Origin" value="*" /> 
</customHeaders> 

или явно указать домен:

<customHeaders> 
    <add name="Access-Control-Allow-Origin" value="http://anotherintra.contoso.com" /> 
</customHeaders> 
+0

К сожалению, у меня нет доступа к серверам. Я должен исправить это с помощью элементов управления OOB. Я использую редактор сценариев в Sharepoint 2013, чтобы запустить это! Есть идеи –

0

с помощью OOB скриптов, это не будет быть фиксированным. изменения должны выполняться на стороне сервера, как указано Вадимом Гремячевым. Также он может работать в IE8, но в IE10 он покажет вам всплывающее сообщение о необходимости доступа к данным из другого домена.

0

Проверьте свой ответ на следующий вопрос: https://stackoverflow.com/a/32824960/5243272

Возможно ли вы забыли добавить форму переваривать?

Кроме того, я не уверен, что имя списка, которое вы использовали (с пробелом), в порядке или нет. Я думаю, вы должны использовать некоторые специальные символы. (Совет: всегда используйте имена списков и столбцов только с одним словом без специальных символов ...)