POST 到 Angular/Tomcat 的 403 状态码

Posted

技术标签:

【中文标题】POST 到 Angular/Tomcat 的 403 状态码【英文标题】:403 status code on POST to Angular/Tomcat 【发布时间】:2018-09-09 17:29:47 【问题描述】:

我正在编写我的第一个 Angular 应用程序,我想向我的后端 tomcat 服务器发出一个发布请求。使用我传递给 Postman 的相同信息,它会向我返回 200 OK 响应。

myPost(firstname: String, lastname: String, top: String, bottom: String): Observable<Object> 
    return this.http.post('http://localhost:8088/myportal/api/myService', JSON.stringify(
      "jsonrpc": "2.0",
      "id": "1",
      "method": "myPost",
      "params": firstname,lastname,top,bottom
    ),
      headers: new HttpHeaders(
        'SSOUser': 'ARDC2342FC'
      )
    );
  

我找到了一个说要修改 Tomcat 配置的解决方案,所以我编辑了 Tomcat web.xml 文件以启用 CorsFilter 以允许所有来源。

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
   <init-param>
    <param-name>cors.allowed.origins</param-name>
    <param-value>*</param-value>
  </init-param>
  <init-param>
    <param-name>cors.allowed.methods</param-name>
    <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
  </init-param>
  <init-param>
    <param-name>cors.allowed.headers</param-name>
    <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

还是不行。我找到了一个讨论使用角度代理的解决方案,所以我创建了一个 proxy.config.json 文件,这是以前的解决方案之一,但它仍然不起作用


    "/myportal/api" : 
        "target" : "http://localhost:8088/myportal/api", 
        "secure" : false,
        "logLevel" : "debug", 
        "changeOrigin": true
    

还是不行。我没有看到任何其他替代解决方案来解决这个问题,所以我只是假设我做错了什么。有人可以帮忙吗?如果我取出我的 SSOUser,我会收到一个 500 错误,这与邮递员上发生的事情相同,所以这是我可以验证我的前端请求是否相同的唯一方法。

【问题讨论】:

我不确定是否有处理 SSOuser 标头的好方法 【参考方案1】:

由于请求标头中的 ssouser 导致发生 403 错误。由于某种原因,它阻止了请求到达服务器端。当我把它拿出来时,我能够连接到服务器。虽然我需要在服务器端硬编码 ssouser 信息才能通过身份验证。

我需要查找在 http 请求中发送 ssouser 信息的正确方法。

【讨论】:

以上是关于POST 到 Angular/Tomcat 的 403 状态码的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 将 JSON POST 到 Laravel 4

从 Laravel 4.2 升级到 5.0 后获取 POST 的路由未定义错误

Angular 4 POST 到 WCF REST 服务返回 NULL 响应

Rails 4,Carrierwave,jcrop,移动到 POST,而不是 UPDATE

使用 Apache Http Client 4.5.3 从 jdk1.6.0_45 到 API Gateway 的简单 POST 请求

在Angular 4中将数据发送到JAVA post REST API时出现CORS错误