最近手上的项目需要接公司的登录平台,用axios请求时发现要么302后404,要么是cookies被强制加上max-Age:0(直接过期),但在postman调用竟然又可以,所以一直在纠结是前端的问题
直到我读到了这篇文章... https://blog.youkuaiyun.com/w372426096/article/details/100572339
就是后端的问题呀,结果问了后端说现在里面的代码不能改了,行吧,咱们自己想办法...
理论可以参考文章:https://www.cnblogs.com/spec-dog/p/13292111.html,其实大概意思就是重定向后的链接没代理,所以直接贴代码,直接用就好了,只是个代理没必要像我一样花了两天才解决
vue.config.js
module.exports = {
devServer: {
proxy: {
'/api': {
changeOrigin: true,
target: '地址',
pathRewrite: {
'^/api': ''
},
onProxyRes (proxyRes, req, res) {
if (proxyRes.headers.location !== undefined) {
var oldLocation = proxyRes.headers.location
var oldItems = oldLocation.substr(oldLocation.indexOf('/user-info'))
proxyRes.headers.location = '/api' + oldItems
if (proxyRes.headers['set-cookie'] !== undefined) {
var oldCookie = proxyRes.headers['set-cookie'][0]
var newCookie = oldCookie.substring(0, oldCookie.indexOf('/VIID'))
proxyRes.headers['set-cookie'][0] = newCookie + '/api'
}
}
}
}
}
}
}
nginx.conf
location /api {
proxy_pass 地址;
proxy_cookie_path /VIID /api;
}