请求Content-Length在IE中等于0

时间:2013-09-16 08:57:25

标签: jquery internet-explorer http iis internet-explorer-9

我在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;
});

1 个答案:

答案 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期间导航,它可以发送标题和在发送正文之前让请求中止。