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 请求