1、概述
前后端分离的情况下肯定会跨域,这篇文章主要讲axios跨域的设置
2、本地开发环境配置
在项目的根路径下新建vue.config.js
,一定是根路径,和src同级(这个坑我躺过,很舒服)
module.exports={
//publicPath:"./" //线上环境添加,否则访问返回类似这样开头的内容 data:dfsjfskdjflksjfksjfla
devServer:{
port:'8088', //指定前端访问的端口号
proxy:{
'/api': {
target: 'http://localhost:8081/api',//代理地址
changeOrigin: true,//是否允许开启代理
pathRewrite: {//代理地址重写
'^/api': ''
}
}
}
}
}
在main.js加入如下代码,省去每次写接口前缀
axios.defaults.baseURL = "/api"
下面是访问的
this.$axios.get("liuliang").then(res => {
//window.console.log(res.data.data.instances);
this.liuliang=res.data.data.instances
});
目标地址:http://localhost:8081/api/liuliang
项目地址:http://localhost:8080/api/liuliang
2、线上环境配置
用nginx作反向代理,不用本地代理了
main.js 替换baseURL
axios.defaults.baseURL = "http://地址或域名:8088/api/" //正式环境url
nginx.conf
server {
listen 8088;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location ^~ /api/ {
#rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://ip或域名:8081;
}
}