【发布时间】:2020-05-10 11:52:22
【问题描述】:
我正在尝试在我的项目中使用react-admin,这需要Content-Range。
所以在我的服务器上我写了:
@GetMapping("admin/user")
ResponseEntity<List<User> > getAll()
{
System.out.println(new Date());;
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.set("Content-Range",
"posts 0-"+userRepository.findAll().size()+"/"+userRepository.findAll().size());
return ResponseEntity.ok()
.headers(responseHeaders)
.body(userRepository.findAll());
}
还配置了 CORS:
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry
.addMapping("/**")
.allowedOrigins("http://localhost:3000");
registry
.addMapping("/admin*")
.allowedOrigins("http://localhost:3001")
.exposedHeaders("Content-Range");
}
};
}
错误:CORS 策略已阻止从源“http://localhost:8080/admin/user?filter=%7B%7D&range=%5B0%2C9%5D&sort=%5B%22id%22%2C%22ASC%22%5D”获取“http://localhost:8080/admin/user?filter=%7B%7D&range=%5B0%2C9%5D&sort=%5B%22id%22%2C%22ASC%22%5D”的访问权限:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
为什么会出现这个错误?
在邮递员上工作正常:
后来我什至添加了:responseHeaders.set("Origin", "http://localhost:3001");
还是没有希望。
如何解决?
【问题讨论】:
-
你可以在这里查看我的答案:stackoverflow.com/a/42053745/986160。您需要正确配置您的 Spring Boot 后端
标签: reactjs spring spring-boot cors react-admin