2014-11-04 107 views
0

角度中的单个请求在节点上显示两个请求,一个使用x-auth-token作为未定义,另一个使用令牌。

由于在我的角度前端(附加屏幕截图)中出现以下错误,最终我深入了解了节点。

frontend errorbackenderror

角代码:

var self = this; 
    var $http = angular.injector(["ng"]).get("$http"); 
    var authToken = localStorage.getItem("authToken") ? localStorage.getItem("authToken") : Config.authToken; 

    $http.defaults.headers.common["X-Auth-Token"] = authToken; 

    $http.get(Config.url) 
    .success(function(data, status, headers, config) { 
     self.onResult(data); 
    }) 
    .error(function(data, status, headers, config) { 
     console.log(data); //this is empty 
     console.log(status); //stauts is 0 
     console.log(headers); 
     console.log(config); 
     self.onFault(data); 
    }); 

Node.js的

var self = this; 

    app.use(function(request, response, next){ 
     response.set("X-Powered-By", "FIC"); 
     response.header("Access-Control-Allow-Origin", "*"); 
     response.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, X-Auth-Token"); 
     request.id = self.id++; 
     console.log(request.id, request.url, request.headers['x-auth-token']); 
     next(); 
    }); 

节点控制台输出

0 '/attendees?appId=ag.casa.fico' undefined 
1 '/attendees?appId=ag.casa.fico' 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbEFkZHJlc3MiOiJjcmlzdGlhbi5yYWN1QGJpcm91bGRlY3JlZGl0LnJvIiwicGFzc3dvcmQiOiIxMDU3In0.X7rztUCDRngXLV6ZABvv7hqwzvWEJi1Nulxg4KWL-58' 
+2

你能也记录HTTP方法?如果这是一个不同的主机,浏览器很可能会在实际的GET – David 2014-11-04 19:32:58

+2

之前发出一个OPTIONS请求,请参阅预冲的请求https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests – David 2014-11-04 19:34:18

+0

是的它是OPTIONS - >'0'/attendees?appId=ag.cas.fic''OPTIONS'undefined'但是问题是为什么角度最后是状态0的'error'函数调用,我应该记录'response'输出的结束? – user2727195 2014-11-04 19:36:03

回答

0

有你牛逼里德把所有的设置在一个对象,然后通过该到$ http请求

var req = { 
    method: 'POST', 
    url: 'http://example.com', 
    headers: { 
     'Content-Type': undefined 
    }, 
     data: { test: 'test' }, 
} 

$http(req).success(function(){...}).error(function(){...}); 

看到这里https://docs.angularjs.org/api/ng/service/ $ HTTP设置#-HTTP报头