spring - 使用“*”通配符的 Spring CORS 映射不起作用
问题描述
我有一个 Spring Boot 应用程序。在 Application 类中,我像这样定义我的 CORS 映射:
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/lists");
}
};
}
一切都适用于此,但是当我想添加一个包含例如这样的 ID 的映射时
registry.addMapping("/lists/**"); // it also doesn't work with '/lists/*'
,映射不再起作用,并且我在“/lists/142”之类的 GET 请求上收到“No Access-Control-Allow-Origin Header”错误
如https://spring.io/blog/2015/06/08/cors-support-in-spring-framework所示,我尝试使用“/**”作为映射来允许对所有端点 URL 的请求,但只有没有动态值(例如 ID)的端点似乎可以正常工作。
解决方案
尝试使用
@CrossOrigin
这可以作为通配符正常工作。
推荐阅读
- python - 将字典列表转换为 Pandas DataFrame
- clickhouse - clickhouse 配置中的环境变量
- google-apps-script - 请求在谷歌应用程序脚本中获取共享驱动器列表 ID 和驱动器名称
- javascript - 带有“target:'node'”和“type:'module'”的 Webpack 配置抛出“require is not defined”
- confluence - Confluence 从云端迁移到服务器
- reactjs - 对象状态更改时 React Native 屏幕不更新
- reactjs - 带有 setTimeout 的 setState 操作带回已删除的元素
- flutter - Flutter + Hive 检查 Future Builder 的框中是否存在值
- javascript - Bootstrap 5 Accordion:使箭头旋转 90 度而不是 180 度
- java - 使用 Microsoft OpenJDK 升级到 Java 17 后的 Java 编码问题