chrome访问本地文件跨域&如何快速搭建本地http服务器

732 阅读1分钟

为什么会跨域?

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 按钮即可:

image.png

image.png

方法二:使用python3

参考:如何设置一个本地测试服务器

方法三:使用http-server

  1. 在项目中安装
pnpm install http-server --S
  1. 配置script
"scripts": {   "http": "http-server -c-1 -p 8080", },

参数说明:

-c-1    #表示禁用缓存
-p 8080    # 表示指点端口号
-o /other/index.html   # 自动打开浏览器

3.启动项目

pnpm run http