我正在使用 jQuery.XDomainRequest.js (https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest) 来支持 IE 中的 ajax 请求。
它适用于我的 GET 请求,但 POST 不起作用,它返回 500。(我检查过,它适用于其他浏览器,所以它的 XDR 特定问题)。
我的 ajax 调用如下所示:
var contact = {};
contact.firstName = "ABC";
jQuery.ajax({
type: 'POST',
url: contactDetailsUrl,
data: contact,
dataType: 'json',
success: function(data) {
callback(true);
},
error: function(data) {
alert('Currently having trouble posting.');
callback(false);
}
});
这是我第一次遇到 XDomainRequest,我自己做了一些研究,但我不知道为什么会失败。
在此先感谢您的帮助!!!
编辑:我做了一些调试。
我的测试 url = "http:/myserver/test/index.php?key=123" (这是一个跨域请求)
我打印了 json_encode($_GET),我得到:{"key":"123"} 我打印了 json_encodee($_POST),我得到:[]。
显然我的帖子数据没有被发送。
这是发送我的数据的行:
xdr.send(postData);
postData 看起来像:
"firstName=ABC"
我在 php 代码中的标题如下所示:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type');