“已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在‘访问控制允许来源’标头。”
当api被角度部分击中时获得此消息,但当邮递员击中endpoint时获得正确响应。
您需要在Spring启动应用程序中启用/配置CORS(跨源资源共享)-
为整个应用程序启用CORS(这是一个全局配置)-
@Configuration
@EnableWebMvc
public class WebConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
}
此外,Spring允许您在控制器和RequestMapping级别控制CORS配置-
要为整个控制器启用CORS-
@CrossOrigin(origins = "http://your-client-domain.com", maxAge = 3600)
@RestController
@RequestMapping("/booking")
public class BookingController {
@RequestMapping("/{id}")
public Booking retrieve(@PathVariable Long id) {
// ...
}
@RequestMapping(method = RequestMethod.DELETE, path = "/{id}")
public void remove(@PathVariable Long id) {
// ...
}
}
为特定路径映射启用CORS(请求映射)-
@RestController
@RequestMapping("/booking")
public class BookingController {
@CrossOrigin(origins = "http://your-client-domain.com")
@RequestMapping("/{id}")
public Booking retrieve(@PathVariable Long id) {
// ...
}
@RequestMapping(method = RequestMethod.DELETE, path = "/{id}")
public void remove(@PathVariable Long id) {
// ...
}
}
您也可以仅对所需的映射(路径)应用CORS配置,您可以始终将其配置为粒度详细信息-
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/v1/**")
.allowedOrigins("http://your-client-domain.com")
.allowedMethods("OPTIONS", "GET", "POST", "PUT", "DELETE")
.allowedHeaders("Some-Header-x", "Authorization")
.exposedHeaders("X-API-Limit")
.allowCredentials(false).maxAge(3600);
}
}
您可以在这里阅读有关在Spring应用程序中启用和配置CORS的更多信息
我使用的是Spring Boot版本2.0.2Release。下面是我的安全配置 加载http://localhost:8080/myurl失败:对预飞行请求的响应未通过访问控制检查:请求的资源上没有“access-control-allow-origin”标头。因此,不允许访问源“http://localhost:4200”。响应的HTTP状态代码为403。
我正在用Spring-boot(在http://localhost:8080上)和angular(在http://localhost:80上)构建一个应用程序。 如果我输入了正确的密码,http响应代码(我可以在Chrome控制台中看到)是,但我仍然到达块(带有error.status=-1),并且我可以在控制台中看到以下错误消息: XMLHttpRequest无法加载http://localho
我有Spring Boot REST API和React基于CMS。 BasicWebSecurityConfigurerAdapter.kt 我也尝试在我的RestControllers上使用注释,但我遇到了同样的问题,GET请求可以工作,POST请求不能工作。我对Spring Boot还是相当陌生的,所以我肯定有些东西我遗漏了。
我使用的是Spring Boot2.2.2,作为REST服务发布,并为前端做出反应。 我的Spring应用程序属性: 我的React代码片段: 我也尝试过设置标题,下面是重新修改的控制器。我有多个CORS定义错误。
你好,我在使用Ldap创建简单登录时遇到问题。我已经从spring.io网站下载了入门项目:入门LDAP。 它可以很好地与ldif文件配合使用,但我想用运行ldap服务器来代替它。我已经试了好几天了,没有任何进展。我用这段代码获得了最好的结果(替换为getting started project的WebSecurity配置) 如果我尝试使用格式为“用户名”“密码”的良好用户名和密码登录控制台输出:
问题陈述:我有一些Rest的API,它们使用Spring安全性进行CSRF保护。此外,这些API将通过Angular WEB UI从不同的Origin/domain访问。我不需要Spring Authentication,因为身份验证由Siteminder处理。 方法:我遵循了Dave Syer提供的CSRF保护的链接:登录页面:Angular JS和Spring Security Part II