Vue后台进行交互跨域问题

在实际项目开发中,经常会碰到需要判断环境变量的情景。

  vue-cli  的环境下,已经默认配置了一个NODE_ENV的环境变量。当 npm run dev 时,环境变量是development ;当 npm run build 时,环境变量是production。

用过vue-cli开发的通常对NODE_ENV都不陌生,比如我们配置ajax请求的域名头时,就是通过判断 process.env.NODE_ENV来实现的。

上面的process.env.NODE_ENV是vue-cli默认配置的,但是在实际项目开发中,只有开发环境和生产环境是还不够。比如我们还想来一个测试坏境,这时候就需要自己定义了

vue-cli baseURL配置

.env.development配置文件

Vue后台进行交互跨域问题

VUE_APP_BASEURL提取了所有请求url的公共部分,这样在发送axios请求时就不需要写完整的请求路径,只需要写调用后端的接口名就行了,

Vue后台进行交互跨域问题

要想让vue知道这个baseURL,需要进行配置,将配置的baseURL交给vue

Vue后台进行交互跨域问题

向后台发送请求

要想和后台进行数据交互,发送请求时就要解决跨域问题,即要保证浏览器地址栏和发送请求的url一致

浏览器地址栏:

Vue后台进行交互跨域问题

请求url: 

Vue后台进行交互跨域问题

若IP地址和端口号不同,就会发生跨域问题,无法请求到后台。

跨域错误:

Vue后台进行交互跨域问题

配置代理

vue.config,js中可以对前端项目的端口进行配置,并且可以将请求转发到真正要请求的地方去

Vue后台进行交互跨域问题

综上所述:就是要保证浏览器的地址和你发送请求的地址(VUE_BASE_URL)相同,不存在跨域问题,然后再用代理把请求转发到真正要请求的地方去