2013-03-28 87 views
0

我在嘗試一些簡單的操作 - 從SharePoint 2013列表中檢索列表信息。但是,當處理jQuery Ajax時,我正在拒絕訪問。我試着設置頭對象和beforeSend函數,但沒有成功。這裏是我的jQuery.Ajax:SharePoint 2013 API jQuery.Ajax拒絕訪問

$.ajax({ 
     headers: { // also tried with Authentication 
      "Authorization": someBasicCryptedCred, 
      "Accept": "application/json; odata=verbose" 
     }, 
     url: "http://spSiteCollection/_api/web/lists/getbytitle('MyList')/items", 
     type: "GET", 
     success: SuccessProcess, 
     error: ErrorProcess 
    }); 

我的應用程序是一個簡單的MVC移動應用程序

我下面這些文件(從MSDN一些其他的一起,但不能發佈超過2個鏈接):

http://msdn.microsoft.com/en-us/library/jj870858.aspx http://msdn.microsoft.com/en-us/library/jj163228.aspx

+0

你在不同的領域有這個?聞起來像一個交叉來源問題 –

+0

是同一臺服務器上的共享點應用程序?也許你遇到[同源策略](http://en.wikipedia.org/wiki/Same-Origin-Policy)。 –

+0

是的,我的應用程序和SharePoint服務器都位於同一臺服務器上。 另外,我添加了$ .support.cors = true;在加載頁面,否則我得到沒有運輸。 –

回答

0

我在調用中看不到Form Digest的值,這可能是原因嗎?

X-RequestDigest =形式的摘要值

+0

http://msdn.microsoft.com/en-us/library/fp142386%28office.15%29.aspx#bk_synchronize 這似乎是方法,但是當我嘗試發送「虛擬」請求來檢索表單摘要值我再次訪問被拒絕 - URL是http:// spSiteCollection/_api/web/lists/getbytitle('MyList')/ items/contextinfo,也嘗試過_api/web/lists/contextinfo和一些其他組合沒有成功。 –

+0

user2225566,thx爲方向。我已經設法通過向REST服務的contextinfo入口點發出一個虛擬的POST請求,然後從響應中讀取X-RequestDigest值來解決這個問題。 –

0

基本上你在做什麼,是看起來你是從你的應用程序的Web訪問跨站點收集的數據,因此請「AppManifest.xml到您的應用程序提供適當的權限「文件。多數民衆贊成它和你完成。

0

也許你需要的表格摘要值,你可以使用jQuery與

$('#__REQUESTDIGEST').val(); 

您可以通過API REST調用獲得,與/ _api/ContextInfo和檢索與分開的其他許多領域JSON對象表格摘要值。

http://<site url>/_api/contextinfo 

問候