瀏覽器默認禁止跨域請求解決辦法

在chrome運行項目時、如果demo中有Ajax操作瀏覽器就會報一個錯:
AccesstoXMLHttpRequestat’file:///C:/Users/14524/Desktop/QQ%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE%E5%99%A8/source/musiclist.json’ from origin ‘null’ has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

原因:瀏覽器(Webkit內核)的安全策略默認禁止了file協議訪問的應用無法使用XMLHttpRequest對象(XMLHttpRequest 對象用於在後臺與服務器交換數據),錯誤消息中也很清楚的說明了:
Cross origin requests are only supported for protocol schemes: http,data, chrome, chrome-extension, https, chrome-extension-resource.

跨域請求僅支持協議:http, data, chrome, chrome-extension, https,chrome-extension-resource

解決辦法

  • 安裝Server插件
    這裏針對VSCode和Sublime安利一款插件。

  • VSCode
    Live Server插件,這個插件功能十分強大,不止可以解決ajax不支持file協議的問題,還可以實現在編輯器裏保存修改後,頁面自動刷新的功能。具體使用方法在插件安裝的地方有說明,用起來也十分簡單。
    在這裏插入圖片描述
    安裝完成之後,打開html文件後,點擊右下角的GoLive 即可。
    在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章