axios访问服务器响应头两种方法
在token匹对不通过的时候在response响应头中加了一个字段flaghttpServletResponse.addHeader("FLAG", "-1");这样前台是访问不到flag的解决思路:暴露请求头中的某些字段方法一:cros中统一暴露public class CorsConfig {/**允许任何域名使用允许任何头允许任何方法(post、get等)*/private CorsConf
·
在token匹对不通过的时候在response响应头中加了一个字段flag
httpServletResponse.addHeader("FLAG", "-1");
这样前台是访问不到flag的
解决思路:暴露请求头中的某些字段
方法一:cros中统一暴露
public class CorsConfig {
/**
允许任何域名使用
允许任何头
允许任何方法(post、get等)
*/
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
// // addAllowedOrigin 不能设置为* 因为与 allowCredential 冲突,需要设置为具体前端开发地址
corsConfiguration.addAllowedOrigin("http://localhost:8080");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.addExposedHeader("flag");/*暴露哪些头部信息 不能用*因为跨域访问默认不能获取全部头部信息*/
// allowCredential 需设置为true
corsConfiguration.setAllowCredentials(true);
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig());
return new CorsFilter(source);
}
}
方法二:在设置flag时同时暴露字段
httpServletResponse.addHeader("FLAG", "-1");
httpServletResponse.setHeader("Access-Control-Expose-Headers","flag");
实现效果:
更多推荐
已为社区贡献2条内容
所有评论(0)