一个简单的 Spring Boot Demo,使用了 Actuator,配置文件如下:
spring:
security:
user:
name: xf
password: 123456
management:
server:
port: 8090
servlet:
context-path: /sys
endpoint:
health:
show-details: always
endpoints:
web:
exposure:
include: '*'
cors:
allowed-origins: http://localhost:3000
allowed-methods: GET
allowed-headers: '*'
exposed-headers: 'Access-Control-Allow-Origin'
allow-credentials: true
浏览器能正常访问http://localhost:8090/sys/actuator
。
但是使用Postwoman
调试的时候出现CORS
问题:
使用火狐测试如下:
其实这个问题笔者之前遇到过,在方法上加上@CrossOrigin
注解即可:
@CrossOrigin(origins = "http://localhost:3000")
但这个只是针对某个方法的,而且一般在 Controller 层加上,并且尝试过在启动类加上上面的注解无效。
另外去搜索过也添加了如下的配置:
@Configuration
public class WebConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("http://localhost:4200");
}
};
}
}
也无效。
最后也尝试过修改配置文件:
management:
server:
port: 8090
servlet:
context-path: /sys
endpoint:
health:
show-details: always
endpoints:
web:
exposure:
include: '*'
cors:
allowed-origins: http://localhost:3000
allowed-methods: GET
allowed-headers: '*'
exposed-headers: 'Access-Control-Allow-Origin'
allow-credentials: true
也无效。
因为笔者有使用浏览器代理扩展,但是关了代理也无效。
加入Basic Auth
认证后,使用Postman
测试一切正常:
去搜索过Spring Boot
的文档,里面只是简单的提到配置文件的设置:
也就是上面 2.2 中的已尝试过的方法,另外也去搜索过Postwoman
的Github Issue
,里面是有提到CORS
的问题,但是没有涉及到Spring Boot
:
所以求助各位大神这个CORS
问题应该怎么处理???
(真给跪了。。。。)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.