在angular.js中从node.js获取json 1

我想从node.js json数据到angular.js版本1,但我得到像“无法加载http://127.0.0.1:3000/emps :对预检请求的响应没有通过访问控制检查:在请求的资源上没有“Access-Control-Allow-Origin”标题,因此不允许Origin'null'访问。

有angular度的js脚本代码

var myModule = angular.module("myApp",[]).controller("directivesController",function($scope,$http){ var res = $http.get("http://127.0.0.1:3000/emps",{headers:{'Access-Control-Allow-Origin':'*',"Access-Control-Allow-Methods": "*", "Origin":"*", "Access-Control-Allow-Headers": "*"}}); res.success(function(data,status,header,config){ alert("success"); /*console.log(data); console.log(status); console.log(header); */ }); res.error(function(data,status,header,config){ /*console.log(data); console.log(status); console.log(header); */ alert("error"); }); }); 

Node.js脚本代码

 router.get('/', function(req, res, next) { var jsonData = '{"persons":[{"name":"John","city":"New York"},{"name":"Phil","city":"Ohio"}]}'; var jsonObj = JSON.parse(jsonData); res.send(jsonObj); }); 

问题是Cors

要解决它,你可以在你的nodejs服务器中使用cors模块

 var cors = require('cors') var app = express() app.use(cors()) 

在发送响应之前设置Access-Control-Allow-Origin头,

 router.get('/', function(req, res, next) { var jsonData = '{"persons":[{"name":"John","city":"New York"},{"name":"Phil","city":"Ohio"}]}'; var jsonObj = JSON.parse(jsonData); res.setHeader('Access-Control-Allow-Origin','*'); res.send(jsonObj); });