【发布时间】:2021-04-18 19:40:56
【问题描述】:
我目前正在本地测试我的应用程序(后端:springboot,前端:带有 axios 的 vue.js)并且我通过 PUT 请求收到此错误(我不知道它是 PUT 的事实是否是错误,但我测试的其他请求没有显示此错误)
我知道这是一个经常报告的错误,但我测试了我在互联网上找到的所有解决方案,但没有任何效果
我测试过:
在我的控制器上添加这个:
@CrossOrigin(origins = "*")
在产生错误的请求上添加同一行
改为添加:
@CrossOrigin(origins = "http://localhost:8080")
在我的 cors 配置 bean 中添加这个:(这个实际上在其他请求上添加了新的 cors 错误)
@Bean
CorsConfigurationSource corsConfigurationSource() {
final CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("*"));
configuration.setAllowedMethods(Arrays.asList("*"));
configuration.setAllowCredentials(true);
configuration.setAllowedHeaders(Arrays.asList("*"));
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
添加这个 bean
@Bean
public WebMvcConfigurer configurer(){
return new WebMvcConfigurer(){
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/*")
.allowedOrigins("*");
}
};
}
在 axios 请求中添加此标头:
{ "Access-Control-Allow-Origin": '*' },
我承认我在这里有点迷路了。有人可以帮忙吗?
编辑:它是 PUT 的事实确实是错误的根源,即使我真的不知道为什么。但是如果我将其转换为 POST 请求,它就可以正常工作了
【问题讨论】:
-
你从 curl 中得到了什么?
-
@k-wasilewski 没问题
-
您确定没有截取代码中其他地方的响应吗?例如一些 jwt...
-
@k-wasilewski 我有一个 jwt 授权过滤器,我想问题可能来自那里,但我真的不知道如何
标签: spring spring-boot spring-security axios cors