2015-07-20 32 views
0

需要關於sharepoint 2013 Rest API和Ajax Call的幫助。需要關於Sharepoint 2013的幫助需要Ajax調用的Rest API

我在嘗試從發佈網站讀取列表項目到團隊網站。這兩個網站都在不同的網站集合中。

下面的代碼在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加載 沒有'Access-control-Allow-Origin'標頭存在請求的資源。 Oringin'網址'因此不允許訪問。結果有Http狀態代碼401 \t 不幸的是我沒有訪問服務器。我必須用OOB Controls解決這個問題。我在Sharepoint 2013中使用腳本編輯器運行此!任何想法 ? –

回答

0

由於Chrome拒絕爲CORS請求設置Origin標頭,因此很有可能發生這種情況。它甚至不會讓你明確地覆蓋Origin標頭。基本上這會導致服務器看到Origin: null,在大多數情況下導致403。 IE/Firefox顯然沒有這樣的限制。

的SharePoint的情況下,解決辦法內部部署你可以設置一個custom headerweb.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 Controls解決這個問題。我在Sharepoint 2013中使用腳本編輯器運行此!任何想法 –

0

使用OOB腳本,也不會被修復。這些變化需要在Vadim Gremyachev指定的服務器端完成。此外,它可能在IE8中工作,但在IE10中,它會顯示一個安全彈出窗口,要求訪問來自其他域的數據。

0

檢查以下問題我的回答:https://stackoverflow.com/a/32824960/5243272

難道你忘了添加的形式消化?

除了我不確定你使用的listname(空格)是否可以。我認爲你必須使用一些特殊的字符。 (提示:總是使用列名和列名,只有一個詞沒有特殊字符...)