我正在编写我的第一个Angular应用程序,我想向后端tomcat服务器发送一个post请求。使用相同的信息我传递给POST man,它返回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错误,这与postman上发生的事情是一样的,所以这是我可以验证我的前端请求是否相同的唯一方法。
答案 0 :(得分:0)
由于请求标头中有ssouser,因此发生了403错误。由于某种原因,它阻止了请求到达服务器端。当我把它拿出来时,我能够通过服务器。虽然我需要在服务器端对ssouser信息进行硬编码才能通过身份验证。
我需要查找在http请求中发送ssouser信息的正确方法。