Angular $ http:预检的响应具有无效的HTTP状态代码403

kev*_*ius 4 post http-headers cors angularjs

我正在编写一个角度应用程序,我正在尝试使用该$http服务连接到我们的API .

$http.post('https://backend-test/***/v001/login', {'userName': 'admin', 'password': 'passtest'}, {headers: {'Accept': 'application/json', 'Content-Type': 'application/json'}}).then(function success(response) {
    console.log(response);
});
Run Code Online (Sandbox Code Playgroud)

但是,我继续收到此错误:

XMLHttpRequest无法加载 https:// backend-test /***/v001/login.预检的响应具有无效的HTTP状态代码403

它似乎发送OPTIONS请求而不是POST请求:

请求方法:选项

奇怪的是,当我使用这个工具时它正常工作:

https://www.hurl.it/

有什么想法吗?

小智 5

我有同样的问题.我的后端是一个tomcat服务器.我通过配置web.xml解决了这个问题:

<filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
    <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,Authorization</param-value>
    </init-param>     
</filter>
Run Code Online (Sandbox Code Playgroud)