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/