報(bào)錯(cuò)信息如下:
代碼如下:
<!DOCTYPE html> <html> <body> <div id="demo"> <h1>XMLHttpRequest 對(duì)象</h1> <button type="button" onclick="loadDoc()">更改內(nèi)容</button> </div> <script> function loadDoc() { const myHttp = new XMLHttpRequest(); myHttp.onload = function () { //響應(yīng) document.getElementById("demo").innerHTML = this.responseText }; myHttp.open("GET", "./demo/aa.txt",true); myHttp.send(); } </script> </body> </html>
解決方案:
查詢到原因是:
在瀏覽器打開本地的html文件, 上面請(qǐng)求的模型資源文件是一個(gè)本地文件, 協(xié)議是file://,如果是在服務(wù)器啟動(dòng)的話,則使用的是http或者h(yuǎn)ttps協(xié)議。
出于安全性考慮, Chrome默認(rèn)禁止了這種用法,file協(xié)議和http/https協(xié)議不同,會(huì)被Chrome認(rèn)為是跨域訪問,所以會(huì)報(bào)被CORS(Cross-Origin Resource Sharing,跨域資源共享)的安全策略阻止。
如果是部署到服務(wù)器上面,或者是自己在vscode里面通過插件Live Server打開,都是沒有問題的
首先聲明,這種方式只是暫時(shí)的,瀏覽器一經(jīng)關(guān)閉則不起作用了。
以谷歌瀏覽器為例
首先,找到你谷歌瀏覽器瀏覽器安裝的位置,一般默認(rèn)安裝的位置C:\Program Files\Google\Chrome\Application
然后在該目錄打開命令行,直接在文件夾導(dǎo)航欄輸入cmd,敲回車
或者直接進(jìn)入命令行,cd進(jìn)入安裝目錄下:
輸入命令:
chrome.exe --disable-web-security --user-data-dir=C:\MyChromeUserFata
?打開瀏覽器后,將要運(yùn)行的html文件拖入瀏覽器進(jìn)行訪問
?可以正常訪問了~
參考鏈接:原文鏈接:https://blog.csdn.net/pink_cz/article/details/126896190文章來源:http://www.zghlxwxcb.cn/news/detail-475524.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-475524.html
到了這里,關(guān)于原生AJAX案例瀏覽器報(bào)錯(cuò):Cross origin requests are only supported for protocol的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!