我在Node js中编写了以下服务。通过浏览器单独访问时,该服务正常工作。
var http = require('http');
const PORT=8124;
var server = http.createServer(function (request, res){
//res.setHeader(Access-Control-Allow-Origin, *);
var json = JSON.stringify({
id : 1,
message : 'Hurray it worked'
});
res.end(json);
});
server.listen(PORT, function(){
console.log("Server listening on: http://localhost:%s", PORT);
});
我从以下离子应用程序调用上述服务。
angular.module('starter.controllers', [])
.controller('LoginCtrl', function($scope, $http) {
$scope.data = {};
$scope.login = function() {
$http.post("http://localhost:8124")
.success(function(data){
alert("Success");
})
.error(function (error){
alert(error);
});
}
})
运行应用程序时出现以下错误。
阻止跨源请求:同源策略禁止在http://localhost:8124/读取远程资源。 (原因:CORS标题' Access-Control-Allow-Origin'缺失)
为了解决CORS问题,我添加了以下代码行
res.setHeader(Access-Control-Allow-Origin,*);
但现在服务本身不起作用。
代码有什么问题吗?
答案 0 :(得分:0)
您必须用引号括起*
res.setHeader(Access-Control-Allow-Origin, '*');
答案 1 :(得分:0)
尝试使用此Google Chrome扩展程序,它为我解决了很多问题。 https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi