簡體   English   中英

瀏覽器不發送CORS HTTP OPTION FOR POST REQUESTS

[英]browser not sending CORS HTTP OPTION FOR POST REQUESTS

jQuery應發送HTTP OPTION請求以啟動飛行前CORS,但它總是發出HTTP POST。 由於它是一個POST,瀏覽器不會獲得Access-Control-Allow-Origin或Access-Control-Allow-Method,瀏覽器沒有選擇,而是404響應。

jQuery.ajax('https://domain.com/path', {
  crossDomain: true,
  data: postData,
  error: function(jqXHR, status, errorThrown) {
    //whatever
  },
  success: function(data, status, jqXHR) {
    //whatever
  },
  type: "POST",
  xhrFields: {
    withCredentials: true
  }
});

jQuery與CORS的OPTION請求沒有任何關系......瀏覽器實現了這一點。 請參閱: caniuse.com/cors IE8-9使用單獨的對象XDomainRequest(jQuery沒有檢測到或開箱即用),並且具有顯着的局限性。

嘗試curl,fiddler或其他實用程序來確認您的外部資源實際上是在一個單獨的域上,並返回相關請求的相應響應? 您應該能夠右鍵單擊開發人員工具的網絡視圖並復制為curl命令行(可能必須在窗口中切換引號)。 可能的情況是,您實際上並未以您認為的方式提出請求,或者OPTIONS檢查是使用404失敗,還是外部資源返回404。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM