Javascript Angularjs post请求错误号';访问控制允许原点';
我有index.html,它将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
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。