嗨,我无法在我的项目中禁用 CORS。我对 CORS 配置使用自定义过滤器和 Spring Security Config。我看过这个很好的答案:你能在 Spring 中完全禁用 CORS 支持吗?
但是当我尝试以下实现时,我仍然收到 CORS 错误:
CORS 配置:
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
class CorsFilter @Autowired
constructor() : CorsFilter(configSrc()) {
companion object {
private fun configSrc(): UrlBasedCorsConfigurationSource {
val config = CorsConfiguration()
config.allowCredentials = true
config.addAllowedOrigin("http://127.0.0.1:3000")
config.addAllowedHeader("*")
config.addAllowedMethod("*")
val src = UrlBasedCorsConfigurationSource()
src.registerCorsConfiguration("/**", config)
return src
}
}
Run Code Online (Sandbox Code Playgroud)
}
我还尝试将允许的原点设置为如下所示,但没有结果:
config.addAllowedOrigin("http://127.0.0.1:3000")
Run Code Online (Sandbox Code Playgroud)
这些是来自正在进行的 OPTIONS 请求的响应标头:
您能否指出任何其他想法或为什么会发生这种情况?我认为这将是一个简单的解决问题,但它最终消耗了我很多时间。
谢谢
每次我从 spring.io 创建项目时,都会在项目中创建一个 ServletInitializer 文件。我只有 spring 云网关依赖项。这是该文件存在的原因,如果是,有人可以解释原因吗?
这些是它的内容:
package com.springcloudgatewayexample;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringCloudGatewayExampleApplication.class);
}
}
Run Code Online (Sandbox Code Playgroud)