2014-07-11 60 views
3

我知道這個稱號聽起來很奇怪,但讓我描述我所看到的行爲:鉻不瞭解POST請求的

  • 我通過jQuery的$.ajax方法使一個AJAX POST呼叫
  • 這AJAX調用有最大超時設定以及一對自定義首部的
  • 鉻發送OPTIONS請求並得到一個200響應(如在網絡選項卡顯示)
  • 之後,瀏覽器不顯示呼出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

是否可以發佈你的'http:// myserver.com/endpoint'來測試它呢?另外,如果它是您可以共享哪些** Chrome **版本/內部版本以及您正在使用哪種服務器端語言?謝謝。 –

+0

試過'devtools'上的Log XMLHttpRequests? – guest271314

+0

請確保您沒有意外地應用過濾器網絡標籤 – jornare

回答

0

目標是否獲得請求?

我「從AJAX調用參數,因爲在這種情況下,(他們不需要」去除多餘的類型「: - >型:)至少奇怪的是,一出

而且那裏的東西在/ endpoint?php腳本?爲什麼不是/endpoint/script.php?

+0

是的,目的地獲取請求。正如我所提到的,看着WireShark,機器甚至可以得到預期的響應。至於端點URL:這只是一個示例。真正的是有效的(同樣,響應會回到機器上,只是Chrome並不知道)。 – Steve