前后端对接必出bug,最近连续对接了两个项目,对解决跨域有点感觉了,跟大家分享一下经验,都是血的教训…
两个项目都是Springboot+Vue(axios网络请求)。本人主要负责前端,所以前端会分享具体的代码,后端就大致分享一下相应的解决思路。(如果你是后端,应该都懂;如果你是前端,就把思路告诉你的后端,他应该都懂~)
第一个坑:No ‘Access-Control-Allow-Origin’ header
首先,最初也是最常见的情况。在浏览器直接输入网址可以访问到后端,但是前端无法请求到。跨域报错信息:No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
后端解决方案:这一步前端还不需要做啥,后端在响应头中把“Access-Control-Allow-Origin”设置为“*”,这是大家最熟悉的解决方案了。
第二个坑:登录前的页面一切正常,登录后的页面,也就是需要携带cookie请求的页面,就会出现401报错,即用户没有访问权限,需要进行身份认证,说白了就是没有携带cookie请求后端。
前端解决方案:这是axios的坑,axios发送请求默认不携带cookie,需要前端设置一