AngularJS $ http请求未在Node JS Express中被检测为xhr

时间:2016-03-26 06:08:29

标签: angularjs node.js express

我在AngularJS中使用$ http来调用Node JS Express API

var req = {
 method: 'POST',
 url: '/list',
 data: { test: 'test' }
}

$http(req).then(function(){
    console.log('then1');
});

但是在Node JS(' / list')中我正在检查是xhr请求,返回false。

console.log('IS XHR ' + req.xhr) // IS XHR false

我需要检测是否xhr请求然后执行其他操作,我该如何实现。

1 个答案:

答案 0 :(得分:4)

你可以在你的angularjs应用程序中添加X-Requested-With back$httpProvider,如下所示,但它已被angularjs团队删除...... https://github.com/angular/angular.js/commit/3a75b1124d062f64093a90b26630938558909e8d

如下所示:

var app = angular.module('yourApp', []);

app.config(['$httpProvider', function ($httpProvider) {
  $httpProvider.defaults.headers
               .common['X-Requested-With'] = 'XMLHttpRequest';
}]);

OR

$http.get('/list', {
  headers: {
    'X-Requested-With': 'XMLHttpRequest'
  }
});

您可以尝试以下内容:

if (req.xhr || req.headers.accept.indexOf('json') > -1) {
  //xhr response
  } else {

}