我在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请求然后执行其他操作,我该如何实现。
答案 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 {
}