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

preflight的响应具有无效的HTTP状态代码403+angular 2+Java Spring boot

养振濂
2023-03-14

我在angular 2中使用以下头对服务器进行API GET调用。我的angular 2代码如下:

let headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('Authorization', `${this.publisherAccessTokenVar}`);

let options = new RequestOptions({ headers: headers });

return this.http.get( 'https://blahblah', options)
            .retryWhen((error) => error.delay(this.appConfig.serviceCallRetryDelay))
            .timeout(this.appConfig.serviceCallRetryTimeOut)
            .map((response: Response) => response.json());

我的spring boot CORS代码如下:

HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", ((HttpServletRequest) req).getHeader("Origin"));
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Methods", "POST,PUT, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Access-Control-Request-Method,Access-Control-Request-Headers,Content-Type, Accept, X-Requested-With, remember-me, Authorization, X-XSRF-TOKEN");
        chain.doFilter(req, res);
OPTIONS http://blah-blah.com/abcd/logout 403 (Forbidden)
XMLHttpRequest cannot load http://blah-blah.com/abcd/logout. Response for preflight has invalid HTTP status code 403

共有1个答案

汤枫涟
2023-03-14

您必须在控制器声明之前添加@crossorigin。

 类似资料:
  • 所有人。我是Angular 2和Spring框架的新手。我正在尝试一个带有授权头(基本身份验证)的简单get请求。 我使用的是Spring Boot(1.2.6.Release),这也可能是相关的。我的CORS配置如下所示。 帮帮我,我不知道我错过了什么...我已经查了很多帖子,但都没找到。

  • 我使用作为服务器端的Spring-boot并提供一个虚拟服务进行测试 其中我的serviceCaller.java=

  • 托管webservice应用程序的环境Tomcat服务器。网站是用SpringMVC和AngularJS搭建的。 核心问题:REST GET触发了OPTIONS请求,该请求失败。有问题的GET返回一个应用程序/JSON响应。最初,我得到的错误是: "未能加载资源:服务器以状态403(禁止)响应 加载超文本传输协议失败://myServer: 8084/wsPRDE/navbar/getnavbar

  • 问题内容: 大家。我是Angular 2和Spring框架的新手。我正在尝试使用授权标头(基本auth)进行简单的get请求。 我正在使用Spring Boot(1.2.6.RELEASE),这也可能是相关的。我的CORS配置如下所示。 这是客户端的外观 我不断得到: XMLHttpRequest无法加载 http:// localhost:8080 / api / login?username

  • 我正在尝试使用Ajax进行REST调用(POST)。这是我的AJAX代码 最初,我得到了这个错误:XMLHttpRequest无法加载http://localhost:port/service/myservice。对preflight请求的响应未通过访问控制检查:请求的资源上没有“access-control-allow-origin”标头。因此不允许访问源“null”。响应的HTTP状态代码为4