【发布时间】:2021-11-14 00:02:29
【问题描述】:
这是我的 Spring Boot CORS 过滤器类:
@Component
public class CorsingFilter {
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
// Don't do this in production, use a proper list of allowed origins
config.setAllowedOrigins(Collections.singletonList("http://localhost:3000"));
config.setAllowedHeaders(Arrays.asList("Origin", "Content-Type", "Accept"));
config.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "OPTIONS", "DELETE", "PATCH"));
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
这是我的控制器:
@RestController
@RequestMapping("/test")
public class TestController {
@CrossOrigin(origins = "http://localhost:3000")
@GetMapping("/cox")
public String getCox(){
return "COX";
}
}
这是我的反应请求:
let url = "http://localhost:8080/test/cox";
const agent = new https.Agent({
rejectUnauthorized: false
});
try {
const res = await axios.get(url, {
auth: {
username: 'user',
password: '123456'
}
,
headers: {
'Content-Type': 'application/json',
"Access-Control-Allow-Origin": "http://localhost:8080",
'Access-Control-Allow-Credentials': true,
"Access-Control-Allow-Methods": 'HEAD, GET, POST, PUT, PATCH, DELETE',
"Access-Control-Allow-Headers": 'Origin, Content-Type, X-Auth-Token',
},
httpsAgent: agent
})
console.log(res)
} catch (err) {
console.log(err)
}
Here's what the browser cors error looks like
Here's what the request looks like
此外,在浏览器中执行请求时请求有效(从浏览器访问 localhost:8080)
【问题讨论】:
标签: reactjs spring-boot cors