2015-06-22 23 views
1

我试图从NODE JS中为Angular js使用REST API,即使在我的服务器代码中添加cors标头之后我收到错误XMLHttpRequest无法加载http://127.0.0.1:8085/issues。请求标头字段Access-Control-Allow-Headers不允许Access-Control-Allow-Origin。即使在Node.js中为Angular j添加标头后仍然出现CROS错误

我对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为REST API消费。 请帮助

回答

1

错误信息为您拼写出来。

您的客户端代码试图设置访问控制允许来源标题:

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是响应标头,而不是请求标头。

相关问题