1
我试用angular2,所以我是新手。 我有一个tomcat 8与泽西服务器已经工作,我仍然使用它与android应用程序没有任何问题。 因此,当我尝试使用angular2实现一个简单的POST请求到服务器时,由于CORS不允许而失败。 我已经在角度请求中添加了allow-cross-origin头。这是代码:Angular2和tomcat 8:CORS自动发送OPTION请求而不是POST
var creds = "email=" + email + "&password=" + password;
let headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded'});
headers.append('Access-Control-Allow-Origin', '*');
let options = new RequestOptions({headers: headers});
this.http.post("http://192.168.1.70:9000/api/login", creds, options)
.map(res => res.json())
.subscribe(
data => this.saveJwt(data),
err => this.logError(err),
() => console.log('Authentication Complete')
);
并在服务器端我添加过滤器tomacat 8 web.xml文件。
<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>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这是什么问题? 我明白问题是浏览器安全策略,但我只需要在localhost上运行localhost:9000和localhost:3000上运行的角色验证的简单测试。