簡體   English   中英

訪問控制允許起源之謎

[英]Access-Control-Allow-Origin Mystery

我在 Chrome(版本 32.0.1700.77)中發出 CORS 請求時遇到問題。 我肯定正在發送正確的預檢標頭,並且它們也在主要請求期間發送。 我應該補充一點,我正在使用 jQuery $.ajax 並將 contentType 參數設置為“application/json”。 contentType 參數的存在似乎引發了問題(因為沒有它一切都很好)。

這是 OPTIONS 請求的輸出。

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Authorization, Content-Type, X-Requested-With
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Content-Type: text/plain
Content-Length: 2
Date: Fri, 17 Jan 2014 04:58:43 GMT
Connection: keep-alive

這是主 POST 請求的輸出(預期為 401):

HTTP/1.1 401 Unauthorized
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Authorization, Content-Type, X-Requested-With
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Content-Type: application/json; charset=utf-8
Content-Length: 36
Date: Fri, 17 Jan 2014 05:00:05 GMT
Connection: keep-alive

問題是 Chrome 由於某種原因無法識別 Access-Control-Allow-Origin 響應標頭,並在錯誤控制台中顯示以下行:

XMLHttpRequest 無法加載http://site1.dev:3000/api/v1/pathways 請求的資源上不存在“Access-Control-Allow-Origin”標頭。 因此不允許訪問源 ' http://site2.dev:8000 '。

有任何想法嗎?

結果發現 Chrome 沒有從 API 服務器報告 500 錯誤。 哦!

暫無
暫無

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

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