问题描述
在html单文件中要引入vue单文件组件,正常运行html文件,会发现控制台出现以下错误。
问题分析
查找原因发现,在浏览器打开本地的html文件, 请求的模型资源文件是一个本地文件,
协议是file:// ,如果是在服务器启动的话,则使用的是http或者https协议。
出于安全性考虑,Chrome默认禁止了这种用法,file协议和http/https协议不同,
会被Chrome认为是跨域访问,所以会报被CORS(Cross-Origin Resource Sharing,跨域资源共享)的安全策略阻止。
解决思路
方法一:使用命令行配置浏览器跨域问题;
1.首先声明,这种方式只是暂时的,浏览器一经关闭则不起作用了。以谷歌浏览器为例,
首先,找到你谷歌浏览器浏览器安装的位置,一般默认安装的位置 C:\ProgramFiles\Google\Chrome\Application
然后、在该目录打开命令行,直接在文件夹导航栏输入cmd,敲回车;
2.输入命令 chrome.exe --disable-web-security --user-data-dir=C:\MyChromeUserFata
回车后会自动运行谷歌浏览器,打开一个新窗口,在这个新窗口下打开html文件就不会出现跨域了。
方法二:安装插件解决;
1.如果使用的是VsCode编译器,那么通过一个插件就可以搞定这个问题。这个插件的名称为Live Server,
通过安装这个插件就可以使用http协议打开file本地文件页面。
2.然后在html文件下,右键点击open with live server即可;
方法三:修改谷歌浏览器目标属性;
首先找到浏览器图标,复制一份,将其名字更改为Google-Debug然后右击更改后的浏览器,选择属性,打开。
然后在目标输入框中紧跟着原有的字符输入–user-data-dir=“c:\ChromeDebug” --test-type --disable-web-security
注意,空格很重要 切记–前面一定要有空格,然后打开修改好的浏览器,再次打开需要运行的网页,就ok了。
技术参考: www.cnblogs.com/onesea/p/16… blog.csdn.net/pink_cz/art…