我需要从移动设备上的不同域访问共享点列表。这是我的代码,一个简单的获取请求:
$.support.cors = true;
$(function() {
$().SPServices({
operation: "GetListItems",
webURL: "http://myurl.com/project/",
listName: "PM-Registration",
CAMLQuery: '<Query></Query>',
error: function (xhr, message, error) {
alert('error : ' + error);
},
completefunc: function (xData, status) {
alert('Status: '+status+' xdata: ' + xData.statusText);
alert('RESPONSE: ' + xData.responseText);
}
});
});
问题似乎是 CORS 阻止了请求,但我之前通常启用它。 如果我使用命令:--args --disable-web-security,它可以与 Chrome 完美配合,并且可以与 Safari 桌面配合使用,但不能与 Firefox 和 Safari iOS 配合使用... 我在未禁用网络安全的情况下在 Chrome 上收到错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource
我错过了什么吗?我猜这是一个客户端问题,因为它可以在没有网络安全和 Safari 桌面的情况下与 Chrome 一起使用
最佳答案
我将回答我的问题。
即使它可以在 IE 上运行并在 Chrome 上使用特定命令,这也是服务器端设置的安全问题,只有服务器可以通过修改 Access-Control-Allow-Origin
来更改它
我没有找到解决方法来避免客户端出现此 CORS 问题。我的解决方案是将 HTML 页面移到与 SharePoint 相同的域中。我现在拥有我的 SharePoint:www.mysharepoint.com
和我的移动 Web 应用程序 www.mysharepoint.com/mobile/index.html
关于javascript - 带有 SPServices + jQuery 的 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23683568/