我具有CORS全局配置:
@EnableWebFlux
@Configuration
public class WebFluxConfig implements WebFluxConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST")
.allowedHeaders("*");
}
}
当我发送OPTIONS查询时:
curl -i -X OPTIONS -H "Origin:test.com" -H "Access-Control-Request-Method: GET"
我明白了:
http://localhost:9999/my
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,POST
Access-Control-Max-Age: 1800
content-length: 0
有Access-Control-Allow-Origin和Access-Control-Allow-Methods。一切都很好。
但是如果我发送:
curl -i -H "Origin:test.com" http://localhost:9999/my
我不使用Access-Control-Allow-Methods:
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Access-Control-Allow-Origin: *
Content-Type: text/plain;charset=UTF-8
Content-Length: 2
查询curl -i -H "Origin:test.com" -H "Access-Control-Request-Method: GET" http://localhost:9999/my
返回相同的结果。
为什么?请帮助我