我在IE9上通过jQuery发送HTTP POST请求时遇到问题。页面加载后一分钟延迟我从服务器收到错误(因为没有表单字段)。经过一番调查后,我注意到IE发送了表单字段但内容长度为0因此被忽略。 该问题仅在HTTPS上发生,并且仅在我浏览远程站点时发生。在localhost上一切正常。
我发现很少有关于这个问题的链接,但它们已经过时了,请参考IE6:
http://support.microsoft.com/default.aspx?kbid=831167 http://geekswithblogs.net/timh/archive/2006/01/26/67183.aspx
有没有人有类似的问题并解决了它?
修改
在我的帖子中,没有什么特别的:
var data = {
selectedTemplates: id
};
$.post(settings.generateUrl, data).done(function() {
// on request complete;
});
答案 0 :(得分:4)
您可以分享由Fiddler甚至是IE的F12开发者工具生成的流量捕获吗?
有问题的服务器是否使用任何HTTP身份验证方法(特别是NTLM或Negotiate)?如果是,请参阅http://blogs.msdn.com/b/ieinternals/archive/2010/11/22/internet-explorer-post-bodies-are-zero-bytes-in-length-when-authentication-challenges-are-expected.aspx
如果没有,您是否已在其他任何机器上重现此问题?如果您安装了过时的IE浏览器扩展程序(例如"免费下载管理器"),则可能会损坏此方案中使用的URLMon接口并导致零字节POST(有几个dupe的报告StackOverflow的)。
你在POST期间做了什么(例如导航),这可能导致在提交POST数据之前拆除表单(例如,如果你在XHR POST期间导航,它可以发送标题和在发送正文之前让请求中止。