求解,这个应该怎么配置,网上咋写的都有,还有跨域问题,后台给的接口都会跨域吗,必须在 proxyTable: {}里面配置吗
一般都是为了一些基本项目配置
一般来说给你的接口都不会跨域,proxyTable 是让你在本地开发的时候用的。
axios拦截器封装接口调用
可以参考一下我这个,封装axios为了统一的错误处理,配置请求头(token、content-type等),通过请求拦截器/响应拦截器实现相应的逻辑。
后端给到我们接口,我们本地开发肯定是需要配置代理的,不然无法跨域访问接口。上线部署时,配置nginx代理,通过访问nginx服务器代理指向后端的服务器。
axios 封装是为了对请求和响应做统一处理。
封装成什么样看自己的需求。
porxy是本地联调后端线上的api用的。在本地开发会产生跨域,所以需要配置。
线上环境跨域属于nginx配置范围。
如果有使用node中间件,可以在node中解决跨域。
后端给的接口会不会跨域,这个要看后端有没有开cors(安全性),需要proxyTable配置代理
不做代理也可以,还可以在封装axios的时候判断环境做相对应的操作
// 配置接口地址(路径处理函数)考虑跨域情况下
let filterUrl = url =>{
let baseUrl;
if(process.env.NODE_ENV === "development"){
baseUrl = "本地api";
}else{
baseUrl = "生产api"
}
if (url && url.startsWith("http")) {
return url;
}
return baseUrl + url;
}
配置代理在vue.config.js中找到devServer>proxy
`devServer: {
// development server port 8000
port: 8000,
// If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
proxy: {
'/admin': {
target: 'http://xxx.xxxx.cn/admin/',
changeOrigin: true,
pathRewrite: {
'^/admin': ''
}
},
'/api': {
target: 'http://xxxx.xxxx.cn/api/',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
},`
6 回答2.9k 阅读✓ 已解决
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
跨域一般是后台处理