2019年11月12日 星期二

Cross origin requests are only supported for HTTP

用瀏覽器看一個放在本機硬碟裡面的index.html,這個頁面裡面包含了JavaScript並且會去存取本機硬碟同資料夾的一些json檔案、還有一些Ajax request,導致了頁面無法正常顯示。觀察了錯誤訊息:
  • Cross origin requests are only supported for HTTP.

這個問題是CORS (Cross-Origin Resource Sharing) 錯誤,在上述的情況下意思是瀏覽器只支援從HTTP上面抓到的JavaScript或資料,而不能夠使用本機上的資源。使用Mac的瀏覽器Safari的解決方案步驟如下:
  1. 打開 Safari ⇢ Preferences... ⇢ Advanced
  2. 勾選 Show Develop menu in menu bar
  3. 點選上方選單的 Develop
  4. 勾選 Disable Cross-Origin Restriction

一般來說會把Cross-Origin Restriction關閉應該是為了防止Cross-Site Request Forgery (CSRF, XSRF) 這種惡意攻擊的手段。所以除非必要,還是盡量不要關閉Cross-Origin Restriction這個選項~

參考資料

_EOF_

沒有留言:

張貼留言