【发布时间】:2014-09-02 09:58:46
【问题描述】:
我知道这个标题听起来很奇怪,但让我描述一下我看到的行为:
- 我正在通过 jQuery 的
$.ajax方法进行 AJAXPOST调用 - 此 AJAX 调用设置了最大超时时间以及几个自定义标头
- Chrome 发送
OPTIONS请求并获得 200 响应(如“网络”选项卡中所示) - 此后,Chrome 不会在“网络”选项卡中显示传出的
POST请求,随后 AJAX 调用就会超时。
这是奇怪的部分:
- 虽然请求未列在“网络”选项卡中,但通过 WireShark 观察网络流量可以清楚地显示出一个传出请求和来自服务器的即时(成功)响应。
- 这仅限于 Mac 上的 Chrome...所有其他浏览器都不会显示此问题
- 即使所有 Chrome 版本都相同,Mac 上的 Chrome 也有少数(极少数)实例不显示此问题。
这是我正在使用的 JS sn-p:
$.ajax({
"type":"POST",
"cache":false,
"dataType":"json",
"url":"http://myserver.com/endpoint",
"crossDomain":true,
"xhrFields":{
"withCredentials":true
},
"contentType":"application/x-www-form-urlencoded",
"headers":{
"X-Test-Header.valueA":"123",
"X-Test-Header.valueB":"456"
},
"data":"a=something",
"timeout":10000
});
有什么可能导致这种情况的想法吗?
【问题讨论】:
-
是否可以发布您的
http://myserver.com/endpoint进行测试?此外,是否可以分享您使用的 Chrome 版本/构建以及您也在使用哪种服务器端语言?谢谢。 -
试过
Log XMLHttpRequestsdevtools? -
确保您没有在网络标签中意外应用过滤器
-
你的问题已经解决了吗?
标签: jquery ajax google-chrome post