2

我在 IE9 上通过 jQuery 发送 HTTP POST 请求时遇到问题。加载页面并延迟一分钟后,我从服务器收到错误(因为没有表单字段)。经过一番调查,我注意到 IE 发送表单字段但内容长度为 0,因此它们被忽略。该问题仅在 HTTPS 上发生,并且仅在我浏览远程站点时发生。在本地主机上一切正常。

我发现关于该问题的链接很少,但它们很旧并且参考 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;
});
4

1 回答 1

4

你能分享一个由 Fiddler 甚至 IE 的 F12 开发工具生成的流量捕获吗?

有问题的服务器是否使用任何 HTTP 身份验证方法(特别是 NTLM 或协商)?如果是这样,请参阅http://blogs.msdn.com/b/ieinternals/archive/2010/11/22/internet-explorer-post-bodies-are-zero-bytes-in-length-when-authentication-challenges-是预期的.aspx

如果没有,您是否在任何其他机器上重现了此问题?如果您安装了一个过时的 IE 浏览器扩展程序(例如“免费下载管理器”),它可能会破坏在这种情况下使用的 URLMon 接口并导致零字节 POST(在 StackOverflow 上报告了几个这样的错误)。

您是否在 POST 期间做了任何可能导致表单在提交 POST 数据之前被拆除的事情(例如导航)(例如,如果您在 XHR POST 期间导航,则可以发送标头并在正文之前中止请求已发送)。

于 2013-09-16T19:02:56.230 回答