最近,我在OSX和iOS上的Safari上遇到了CORS(跨源資源共享)請求問題, Chrome和Firefox。我跟着the documentation of W3C和處理服務器端的預檢要求,我的回答是這樣的:交叉原點資源共享問題:OSX Safari和iOS Safari在預檢請求後失敗
HTTP/1.0 200 OK
Access-Control-Allow-Origin: http://192.168.1.96:4399
Access-Control-Allow-Methods: POST
Access-Control-Allow-Methods: GET
Access-Control-Allow-Methods: OPTIONS
Access-Control-Allow-Headers: Origin
Access-Control-Allow-Headers: Authorization
Access-Control-Allow-Headers: X-Requested-With
Access-Control-Allow-Headers: Accept
Access-Control-Allow-Headers: Access-Control-Request-Method
Access-Control-Allow-Headers: Access-Control-Request-Headers
Access-Control-Allow-Headers: DNT
Access-Control-Allow-Headers: X-CustomHeader
Access-Control-Allow-Headers: Content-Type
Access-Control-Max-Age: 0
Date: Fri, 25 Nov 2016 08:45:25 GMT
Origin: http://192.168.1.96:4399
Access-Control-Expose-Headers: Origin
Content-Encoding: gzip
Transfer-Encoding: chunked
這種反應正常工作在Chrome,Firefox和Android瀏覽器:一個POST請求預檢要求後立即發送。但在Safari瀏覽器,服務器響應reflight請求後,我得到了這樣的錯誤消息來自控制檯:
Failed to load resource: The network connection was lost.
我檢查從服務器的預檢響應,但發現它與上面相同......搜索和嘗試這麼多之後有時,我仍然不能使它:-(
工作是否有任何人認爲遇到之前的問題?誰能弄清楚我做了什麼錯?
非常感謝事先!
聽起來像是你在Safari中的錯誤,你可以在https://bugs.webkit.org/ – sideshowbarker
@sideshowbarker感謝報告非常多。但有趣的是,偶爾我發現它在我從OSX Safari上的開發菜單中選擇「Disable Cross-Origin Restrictions」選項時有效!我懷疑這個問題可能與瀏覽器安全策略有關,我會繼續嘗試弄清楚。 – BenMiracle