Javascript Angularjs post请求错误号';访问控制允许原点';

Javascript Angularjs post请求错误号';访问控制允许原点';,javascript,node.js,angularjs,express,Javascript,Node.js,Angularjs,Express,我有index.html,它将post请求发送到localhost:3000/SetUser,但我总是收到错误XMLHttpRequest无法加载https://localhost:3000/SetUser. 请求的资源上不存在“Access Control Allow Origin”标头。起源'https://localhost因此,不允许访问。 这是我的角度控制器中的代码 $http.post("https://localhost:3000/SetUser", {'a':'b'}).succ

我有index.html,它将post请求发送到
localhost:3000/SetUser
,但我总是收到错误
XMLHttpRequest无法加载https://localhost:3000/SetUser. 请求的资源上不存在“Access Control Allow Origin”标头。起源'https://localhost因此,不允许访问。

这是我的角度控制器中的代码

$http.post("https://localhost:3000/SetUser", {'a':'b'}).success(function(data, status, headers, config) {
 console.log('data', data);
});
这是我的server.js(nodejs)
app.post

app.post('/SetUser', function(req, res) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 
    res.end();
    console.log("New user added ", req.body);
});
我什么都试过了,不知道能做些什么来解决这个问题。
谢谢

深入查看网络选项卡,浏览器发送“飞行前”请求,这是一个选项请求:

所以你必须为这个动词设置你的CORS标题

我建议在全球范围内进行设置:

app.use(function(req, res, next) {
    res.header('Access-Control-Allow-Origin', 'example.com');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type,X-Requested-With');
    next();
});

此外,注意您的allow标头并完成它们

确保所有内容都在同一端口上运行,它应该可以解决问题, 是的,通过他的错误,他从端口80向端口3000发送请求是可以理解的。 是什么阻止您在同一端口上解析应用程序


你应该更好地解释自己。

特定路由在运行端口3000的服务器上,对吗?我发现有时使用
*
并不总是像预期的那样工作,这取决于所使用的后端,你是否尝试过使用应用程序的地址?@gillesc如果是这样,你会收到一条特定的错误消息。类似于
通配符(*)的内容不被接受。
(现在我脑子里没有确切的短语)。我的猜测是,you server.js的功能从未运行过,而且您的头文件也没有设置为允许cors。