2015-06-22 52 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是響應標頭,而不是請求標頭。

相關問題