2013-03-28 88 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 

问候