最近在项目中遇到了跨域问题(基于原生的项目),后台配置了好多种方法都没效果(应该是项目配置问题),于是就只好前端解决。前端解决跨域首先就想到了代理,vue中已经有了很好的跨域解决方案就是在vue项目根目录下的 vue.config.js 文件 proxy 中设置跨域,那原生项目是不是也可以使用 node.js 下载相关插件去解决跨域,网上找了找,并处理了一些坑后用 live-server 解决了跨域。

为什么会有跨域

跨域是因为浏览器的 同源策略 域名,协议或端口不同,就会跨域

使用live-server代理解决跨域

没有安装 node.js 的需要先自行安装

初始化项目并全局安装 live-server

1,找到自己文件目录cmd调出黑窗口

2, npm init 初始化项目

3, npm install live-server -g 全局安装live-server

3,打开生成的 package.json 文件。

4,在 package.json scripts 中配置启动。

5,保存后, npm run server 便可以启动项目。

以代理的方式启动

还是在 package.json 中的 scripts 中配置,如下:

"name": "jq", "version": "1.0.0", "description": "", "main": "FileSaver.min.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "server": "live-server --open=./your.html --port=8081", "proxy": "live-server --open=./your.html --port=8081 --proxy=/proxy:http://192.168.1.110:8001" "author": "", "license": "ISC"

/proxy 表示请求接口如果用 /proxy 开头则代理到 http://192.168.1.110:8001 (这里可以根据自己的需要配置 /proxy 也可以换成自己喜欢的)

输入命令 npm run proxy 以代理方式启动。

正常方式请求(会出现跨域, axios 同理)

使用代理方式。

这样 live-server 会以代理的方式请求到数据后转发回本地。 最后项目发布时别忘了把接口改回来

分类:
前端
  •