为什么会跨域?
Chrome浏览器访问本地文件时使用的是file协议,而网页通常使用的是HTTP协议,这两种协议属于不同的域,因此存在跨域问题。
Chrome浏览器出于安全考虑,会限制使用file协议的网页访问跨域资源。这是因为,如果一个网页可以通过file协议直接读取本地文件并将其上传到远程服务器,那么就可能会泄露用户的隐私信息。
为了避免跨域问题,可以将本地文件放在一个HTTP服务器上,然后通过HTTP协议来访问。如果确实需要在本地使用file协议访问跨域资源,可以在Chrome浏览器上启用“--allow-file-access-from-files”选项来允许访问跨域资源。
如何快速搭建本地http服务器
方法一:使用vscode插件Live Server
在 VSCode 软件中安装插件 Live Server,使用 VSCode 打开需监听的文件夹,点击 Go Live 按钮即可:
方法二:使用python3
方法三:使用http-server
- 在项目中安装
pnpm install http-server --S
- 配置script
"scripts": { "http": "http-server -c-1 -p 8080", },
参数说明:
-c-1 #表示禁用缓存
-p 8080 # 表示指点端口号
-o /other/index.html # 自动打开浏览器
3.启动项目
pnpm run http