我正在尝试从NODE JS中为Angular js使用REST API,即使在我的服务器代码中添加cors头后我收到错误XMLHttpRequest也无法加载http://127.0.0.1:8085/issues。请求标头字段Access-Control-Allow-Origin不允许使用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进行Rest API消耗。 请帮助
答案 0 :(得分:1)
错误消息为您解释。
您的客户端代码正在尝试设置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是一个响应标头,而不是请求标头。