Chrome不知道POST请求

时间:2014-07-11 17:36:00

标签: jquery ajax google-chrome post

我知道这个标题听起来很奇怪,但让我描述一下我所看到的行为:

  • 我正在通过jQuery' POST方法进行AJAX $.ajax调用
  • 此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
});

任何可能导致此问题的想法?

1 个答案:

答案 0 :(得分:0)

目的地是否收到了请求?

我会从ajax调用参数中删除多余的“,因为在这种情况下不需要它们(”type“: - > type :)至少奇怪那一个。

还有什么在/端点?一个PHP脚本?为什么不是/endpoint/script.php?