这是请求login.js
:
login(params) {
return post('/user/login', params)
}
这是配置的接口地址config.js
:
axios.defaults.baseURL = '/api'
这个是代理的配置vue.config.js
:
devServer: {
proxy: {
'/api': {
//要访问的跨域的域名
target: 'http://www.xxxxx.cn/xxxxx', // 这里是公司的官网地址
ws: true,
secure:false, // 使用的是http协议则设置为false,https协议则设置为true
changOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
点击【登录】之后,报错是404
我理解的是,做了代理之后,请求URL应该换成公司官网才对呀?为什么我这里都没有换,这样404也正常吧。。。感觉是我的代理没用生效。
我还在vue.config.js
里面加了输出语句,也没有输出,是哪个环节出了问题呢?还有就是如果没生效,那jquery应该会报错的,但却没有报错。。实在想不通哪里出问题了,,,求解决!!!
问题解决了,代理没问题,就是后端那边的问题,问题出在【使用/login接口时也需要前端的token】。已经修正了
另外,看代理有没有成功生效,可以在preview查看
把target值随便乱写一个
我这边的报错:
至少说明我的代理没问题。。。
然后再改改。。。发现是后端的问题的。。。。
通过
proxy
只是将请求代理到target
上,请求的url依旧是localhost
前端在所有的请求前面加上了
/api
,至于要不要pathRewrite
还要看后台接口有没有以/api
开头,如果没有才需要pathRewrite
,将/api
重写,否则不需要,报404
路径错误,问你们后台的接口有没有带上/api