爱编程
用代码编织自己的梦想

vue axios - SpringBoot 跨域问题 携带cookies 问题解决

前端地址:127.0.0.1:8080

后端地址:127.0.0.1:8081

后端设置解决跨域,spring boot 注解方式

@CrossOrigin(origins = "http://127.0.0.1:8080", allowCredentials = "true")

Springboot 拦截器导致 @CrossOrigin 跨域失效

CROS 复杂请求时会首先发送一个 OPTIONS 请求做嗅探,来测试服务器是否支持本次请求,请求成功后才会发送真实的请求;而 OPTIONS 请求不会携带数据,导致这个请求被拦截了,直接返回了状态码,响应头中没携带解决跨域问题的头部信息,出现了跨域问题。

原文:https://cloud.tencent.com/developer/article/1768352

解决:在拦截器中配置让OPTIONS 请求放行

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        //OPTIONS 请求统统放行
        if ("OPTIONS".equalsIgnoreCase(request.getMethod())){
            return true;
        }

    }

axios 携带cookies

// 设置cookies-token
this.$cookies.set('token', resp.data.data, 60 * 20, "/", "", true, "None")

// 设置axios 携带cookies
axios.defaults.withCredentials = true;
赞(3)
本网站所发布的所有内容源于互联网搬运,本站资源仅供个人学习交流,不允许用于商业用途,否则法律问题自行承担。仅限于小范围内传播学习和文献参考,请您在下载后24小时内删除,如有侵权请第一时间联系站长删除,敬请谅解! E-mail:admin@quange.cc

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址