我正在编写一个有角度的应用程序,并且我正在尝试使用$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);
});
但是,我继续收到此错误:
XMLHttpRequest无法加载 https://backend-test/ *** / V001 /登录。响应 for preflight具有无效的HTTP状态代码403
它似乎也发送了OPTIONS请求而不是POST请求:
请求方法:选项
奇怪的是,当我使用这个工具时它正常工作:
有什么想法吗?
答案 0 :(得分: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>
答案 1 :(得分:1)
这里是Cors用于exressJS(NodeJS)的中间件
npm install cors
代码:
var cors = require('cors'),express = require('express');
var app = express(); // defining app using express
app.use(cors()); // **core as middleware**