javascript - IE 中的 jQuery 跨域发布与数据

标签 javascript jquery cors

CORS 现在在我的 Chrome、Firefox 应用程序中完美运行。使用此插件https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest

我也能够在 IE 中获取 CORS 请求,如下所示:

$.ajax({
    url: url,
    type:"POST",
    dataType: "json"
});

但是当我尝试在 POST 请求中发送数据时,例如:

$.ajax({
    url: url,
    type:"POST",
    dataType: "json",
    data: {test: 5}
});

它不起作用。有没有人设法让 IE 发出包含 POST 数据的 CORS 请求?

谢谢!

最佳答案

我注意到在 jQuery-ajaxTransport-XDomainRequest 源中,传递 userOptions.data 的发送函数调用被注释掉,并且事件的 send() 调用没有参数:

我在 POST 方面遇到了同样的问题,并且没有数据到达服务器。所以我取消了发送数据调用的注释,如下所示:

xdr.send(userOptions.data);
//xdr.send();

但是仍然没有发送数据。因此,我将类型从“POST”更改为“GET”,并更新了我的服务器代码来处理它。嗯,它确实有效!我还没有进行更多测试,我不确定 GET 是否可以接受我正在开发的代码。

更新:我进一步测试,使用 send() 或 send(userOptions.data) 似乎在 IE 上没有区别。正是对 GET 的更改使其起作用,因此如果您必须在 ajax 代码中使用 POST,则 POST 仍然是一个问题。

由于我是跨域 ajax 发布数据的新手(IE 是问题所在),我希望其他人能够发布他们的发现,以便它适用于 POST 和 GET。感谢您的帮助!

关于javascript - IE 中的 jQuery 跨域发布与数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12023382/

相关文章:

Apache Tomcat 请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - 实现 javascript CORS 示例

javascript - 如何在foreach迭代中去掉这个{},需要去掉object

Javascript onKeyUp

动态更新 WTForms 选择字段的 JavaScript/Ajax

jQUery Mobile 共享页眉和页脚

c# - 如何通过 MVC 操作方法显示/隐藏 HTML 按钮

javascript - 删除父 HTML 元素中的 HTML 元素

javascript - JQuery - 如果 href 等于某物,如何将类添加到特定范围

javascript - 为什么 Fetch API fetch() 总是抛出异常?