我有一个SharePoint 2013网站和一个ASP.Net网站。我在我的ASP.Net站点添加了一些jquery,使用$ .ajax jquery方法从我的SP2013站点调用REST svc。当它调用xhr.Open时,我在jquery-1.4.1.js第4984行得到“Access Denied”。我正在使用IE8(我相信我的所有客户也将使用IE8。)
这是在更新版本的jQuery中解决的问题吗?
我是否可以在IIS级别(思考应用程序池配置......?)来缓解这种情况?
任何线索?
SP.RequestExecutor可以使用,还是只适用于SP应用程序而不是真正用于ASP.Net网站?更多 - http://msdn.microsoft.com/en-us/library/fp179927.aspx
提前致谢。
答案 0 :(得分:0)
您应该将dataType jsonp
用于跨域请求,将dataType json
用于相同的域同一来源请求。
$.ajax({
url: "otherdomain.com",
dataType: "jsonp",
data: "",
success: function( response ) {
console.log( response ); // server response
}
});
答案 1 :(得分:0)
除了解决可能的跨域问题的JSONP之外,值得指出的是,除了具有多个端点的搜索服务之外,SharePoint中的所有REST服务都需要默认情况下进行身份验证。
具体取决于您尝试做什么this post may offer some useful pointers
答案 2 :(得分:0)
您正在处理跨域问题。您可以使用CORS(http://enable-cors.org/)或在与ASP.NET应用程序相同的域上构建包装器Web服务,该应用程序将从ASP.NET应用程序调用REST服务。
如果我错了,请纠正我,JSONP将不适用于此,因为REST sharepoint Web服务不提供JSON响应。
答案 3 :(得分:0)
我对此进行了一些调查,发现了" parsererror"是因为SP 2013 REST返回RSS ATOM提要,而不是json提要。将dataType设置为xml时,它将正确解析它,然后您可以使用"条目"节点到达重要数据所在的项目" m:properties"节点。总而言之,dataType = xml,跨域
需要cors = true