即使在为Angular js的node.js中添加标头之后,也要获得CROS错误

我正在尝试使用NODE JS for Angular js的REST API,甚至在我的服务器代码中添加cors头之后我得到错误XMLHttpRequest无法加载http://127.0.0.1:8085/issues 。 请求标头字段Access-Control-Allow-Headers不允许Access-Control-Allow-Origin。

我对Angular JS和Node JS都是新手。

节点JS代码:

var fs = require('fs'), http = require('http'); http.createServer(function (req, res) { res.writeHead(200, { 'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept"', 'Access-Control-Allow-Origin' : 'http://127.0.0.1:8085', 'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE' }); fs.readFile('C:\glossary.json', function (err,data) { if (err) { res.writeHead(404); res.end(JSON.stringify(err)); return; } res.writeHead(200); res.end(data); }); }).listen(8080); 

应用代码:

  var app = angular.module('app', ['restangular']) .config(function(RestangularProvider) { RestangularProvider.setBaseUrl('http://127.0.0.1:8085/'); RestangularProvider.setDefaultHeaders({"Access-Control-Allow- Origin":"*"}); }); app.controller('IndexCtrl', function($scope, Restangular) { $scope.issue_id = Restangular.all('issues').getList(); }); 

尝试使用Restangular来获取其他API消耗。 请帮助

错误消息为你拼写出来。

您的客户端代码尝试设置Access-Control-Allow-Origin标头:

 RestangularProvider.setDefaultHeaders({"Access-Control-Allow- Origin":"*"}); 

你的服务器端代码允许一些标题,但是这不是其中之一:

 'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept"', 

删除行:

 RestangularProvider.setDefaultHeaders({"Access-Control-Allow- Origin":"*"}); 

Access-Control-Allow-Origin是响应头,而不是请求头。