springboot 前后端分离使用shiro进行权限控制并使用cors进行跨域 80C

springbootcookieshiro前端权限
springboot 前后端分离使用shiro进行权限控制并使用cors进行跨域
本来框架已经搭好了并且持续运行了一段时间前端已经能够拿到后台传过去的数据,cors配置

@Configuration
//@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

@Override
public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**")
            .allowedOrigins("http://192.168.1.141:8080","http://127.0.0.1:8080")
            .allowedMethods("GET", "HEAD", "POST","PUT", "DELETE", "OPTIONS")
            .allowCredentials(true).maxAge(3600);
}

/*private CorsConfiguration buildConfig(){
    CorsConfiguration config = new CorsConfiguration();
    config.addAllowedOrigin("http://192.168.1.141:8080");
    config.addAllowedOrigin("http://127.0.0.1:8080");
    config.addAllowedHeader("*");
    config.addAllowedMethod(HttpMethod.GET);
    config.addAllowedMethod(HttpMethod.POST);
    config.addAllowedMethod(HttpMethod.PUT);
    config.addAllowedMethod(HttpMethod.DELETE);
    config.addAllowedMethod(HttpMethod.OPTIONS);
    return config;
}

@Bean
public CorsFilter corsFilter(){
    UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
    configSource.registerCorsConfiguration("/**", buildConfig());
    return new CorsFilter(configSource);
}*/

}
但是今天前端请求菜单接口的时候报302问题(注:今天之前请求菜单接口是可以跨域返回数据的),不明觉厉,弄了很久还是没有弄好。

前端也加了

xhrFields: {
withCredentials: true
},
crossDomain: true,

3个回答

提供接口的服务器接收到你发送的请求,在返回结果时设置返回码为 302 ,你就会得到 302 。

302 返回码代表暂时性转移,怎么处理要看你的具体需求。

建议先了解HTTP协议

//处理http返回码302的情况

if (response.getStatusLine().getStatusCode() == 302) {

String locationUrl=response.getLastHeader("Location").getValue();

get(locationUrl);//跳转到重定向的url

}

那就调查菜单接口为什么返回302,修复它。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐