当前位置: 首页 > 知识库问答 >
问题:

CORS策略:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态

柯波峻
2023-03-14

我使用Angular6作为网页前端工程师运行超文本传输协议://localhost:4200和Spring Boot(内置Tomcat服务器)作为后端(公开一个GET Rest API)运行在https:// localhost:8083/ldap。当我运行这个,我得到CORS策略错误的浏览器。所以我在网上搜索并尝试了网上建议的多个修复程序。我不确定我在下面的每个解决方案中错过了什么。


不成功修复1:我试图通过代理运行它。
-

访问位于“”的XMLHttpRequesthttps://localhost:8083/“起源”http://localhost:4200'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态

不成功的修复3:我没有在前端进行更改,而是试图通过在控制器级别添加以下代码来在API级别进行更改。

@控制器
@交叉原点(原点=”http://localhost:4200“”
公共类控制器{

// This is for LDAP Authentication
@GetMapping("/ldap")
@ResponseBody
public Authentication hello() {
    return LdapSecurity.getAuthentication();
}

}

在这里,我再次看到以下错误:

访问位于“”的XMLHttpRequesthttps://localhost:8083/“起源”http://localhost:4200'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态

更多不成功的修复:

我甚至尝试使用应用程序更改Tomcat的标题。属性文件,但找不到足够的示例或代码进行任何更改<在互联网上,一些人建议在API级别实现过滤器,但我不确定在whcih类中是否需要添加那些重写的过滤器方法
我在过去两天一直在关注这个问题

PS:我看到一些人已经在API层实现了CORS过滤器,或者实现了下面这样的类。现在我的问题是,如果我在类下面实现,那么我需要在哪里引用这个类?是网络。xml或任何其他地方

@配置


共有2个答案

梁丘飞鸾
2023-03-14

请看这里,您需要在方法/控制器中启用cors

@CrossOrigin(origins = "http://localhost:9000")
@GetMapping("/greeting")
public Greeting greeting(@RequestParam(required=false, defaultValue="World") String name) {
    System.out.println("==== in greeting ====");
    return new Greeting(counter.incrementAndGet(), String.format(template, name));
}
顾宣
2023-03-14

我使用Spring Security特性进行LDAP身份验证。但现在我删除了LDAP的Spring Security特性,并使用java中的一个基本程序与LDAP建立连接。在那之后,我在控制器层使用了CrossOrigin标签,现在我没有收到CORS问题。谢谢大家的帮助。

 类似资料:
  • 我在做这个请求: 但在执行该方法时,我遇到了以下错误:访问'http://localhost:8083/uaa/addPermission/group/2“起源”http://localhost:3000'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态。我已经有了CORS Chrome插件,我可以做其他类型的请求,比如POST和GET,接收请求的方法有@Cro

  • 我正在使用reactjs前端,在后端使用Spring Boot。我尝试从前端调用endpoint,如下所示: 当我发出请求时,我得到以下错误:- 访问位于“”的XMLHttpRequesthttp://localhost:8000/ckcapp/api/posttest“起源”http://localhost:3000'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在

  • 我试图使用授权头向我的Wordpress REST API发出一个GET/POST请求,但作为响应,我得到了 CORS策略阻止从来源“HTTP://localhost:3000”访问位于“hidden_server_address”的XMLHttpRequest:对飞行前请求的响应没有通过访问控制检查:它没有HTTP ok状态。 在邮递员中,电话工作很好,并给出了预期的结果。

  • 我已经在后端设置了cors,我只是不知道为什么我收到404错误,当网址是正确的。错误是访问XMLHttpRequest在'http://localhost:3008/api/vehicle'从源'http://localhost:3007'已被阻止CORS策略:响应飞行前请求不通过权限改造检查:它没有HTTP确定状态。我还在下面添加了我的api跨域。请检查下面的示例代码。这个问题的解决办法是什么?

  • 即使我在NodeJS/ExpressJS中添加了以下代码,我也无法解释为什么会遇到以下错误。 XMLHttpRequest无法加载http://localhost:9000/polymer/105724/apply.对预检请求的响应无法通过权限改造检查:请求的资源上不存在“访问控制允许源”标头。因此不允许访问源“http://localhost:8080”。

  • 这是我尝试通过spring Security中的基本身份验证登录时得到的错误。@crossorigin()注释包含在rest控制器中。但我还是得到了这个信息。我还尝试过@crossorigins(origins={“localhost:4200”},allowedheaders={“accept”}),但当我尝试登录时,仍然会显示该消息。 用于验证的Angular方法:(我正在返回rest控制器中