我知道这个标题听起来很奇怪,但是让我描述一下我所看到的行为:
- 我正在通过jQuery的
$.ajax
方法进行AJAXPOST
调用 - 此AJAX调用具有设置的最大超时时间以及几个自定义标头
- Chrome发送一个
OPTIONS
请求并收到200响应(如网络选项卡中所示) - 之后,Chrome在网络选项卡中不显示传出的
POST
请求,并且AJAX调用随后超时。
以下是奇怪的部分:
- 尽管请求未在网络选项卡中列出,但通过WireShark观察网络流量清楚地显示了传出请求和服务器的立即(成功)响应。
- 这仅限于Mac上的Chrome...所有其他浏览器都没有显示此问题
- 有一些(非常少)情况下,即使所有Chrome版本都相同,Mac上的Chrome也不显示此问题。
以下是我使用的JS代码片段:
$.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 版本/构建版本以及服务器端语言是什么,那就太感谢了。谢谢。 - Oscar Jaradevtools
中记录XMLHttpRequests了吗? - guest271314