背景:
使用vue-cli开发前端项目。后台的接口地址不在根路径下(例如在http://domain:8080/subpath/
),所有接口有登录判断。
本地开发中遇到了一个很奇怪的问题,可以正常登录,但是请求其他接口时就会提示未登录,本地联调、测试又没问题。最后不得已,只有在开发中关闭登录判断。
原因
后来无意间发现set-cookie
中的path
不是根路径,而是那个子路径(/subpath
),而本地开发中接口又使用了(不加子路径的)相对路径,只是在代理中直接将target
的值设置成了http://domain:8080/subpath/
。总而言之就是本地发出的请求中不包括/subpath
导致虽然本地有cookie但是并没有发送到服务器。详见
解决方案
在开发中给所有请求添加一个子路径(/subpath
)的baseUrl就可以了。