其他分享
首页 > 其他分享> > axios跨域请求之credentials

axios跨域请求之credentials

作者:互联网

问题描述:
在使用Spring Security时,实现前后端分离出现跨域问题,在Controller添加了跨域注解@CrossOrigin,但是登录成功后没有权限访问想要的接口,在没有前后端分离的情况下是可以正常访问,后来查阅资料发现默认情况下,标准的跨域请求是不会发送cookie等用户认证凭据的。所以服务器就默认你是没有登录的,不具备访问权限的。

解决办法:
1、前段请求 设置:
在axios请求是设置参数:

 axios({
         method:'get',
         url:`${this.content_path}/authority/getauth`,
         withCredentials:true//*设置这个参数,让跨域请求携带cookie,因为cookie中包含了登录的信息
       })

2、后端同样要做设置。

//表示允许跨域请求
    @Bean
    public WebMvcConfigurer WebMvcConfigurer(){
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**")
                .allowedHeaders("*")
                .allowCredentials(true);//表示允许请求携带cookie
            }
        };
    }

如果还未解决,可参考下一个

标签:axios,跨域,cookie,设置,WebMvcConfigurer,credentials,请求
来源: https://blog.csdn.net/weixin_42449408/article/details/110265163