javascript - 带有 SPServices + jQuery 的 CORS

标签 javascript jquery ajax sharepoint spservices

我需要从移动设备上的不同域访问共享点列表。这是我的代码,一个简单的获取请求:

$.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/

相关文章:

javascript - 使用 JavaScript 获取图像 src 的替代方法

用于表单验证的 JavaScript 似乎没有被调用

jquery - 如何从 AJAX post 获取 Flask 中的数据

javascript - 如何重新加载/替换外部 javascript onclick?

javascript - jQuery dataTable 使用 ajax 加载数据进行排序

ajax - jsonp 数据到 tokenInput (或类似)插件

javascript - 检查用户是否插入了麦克风

javascript - 如何处理 AngularJS 中的服务器端错误

javascript - 如何同步 Three.js 和 HTML/SVG 坐标系(特别是 w.r.t. y 轴)?

jquery - 将值从 click (this) 传递到 jQuery 中的 ajax success