如何为 AngularJS 中的所有 AJAX 请求设置 header
How to setup header for all AJAX requests in AngularJS
jQuery 有一种简单有效的方法来为其所有 AJAX 请求设置通用 header。
那就是:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
如何在 AngularJS
中进行这样的全局设置
可以通过配置应用模块为整个应用程序设置header。
var app = angular.module("auth", []);
// Configure auth app
app.config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.headers.common['Accept'] = 'application/json, text/javascript';
$httpProvider.defaults.headers.common['Content-Type'] = 'application/json; charset=utf-8';
$httpProvider.defaults.headers.common['X-CSRF-TOKEN'] = $('meta[name="csrf-token"]').attr('content')
}]);
// Parent controller
app.controller("auth", function ($scope) {
// Your $http requests will have the common information above
});
您可以像 Milad 所说的那样在您的应用程序配置中设置 headers,或者您可以使用 http 拦截器 概念。
每当启动 http 调用时都会调用拦截器,并且拦截器会在实际调用过程之前 运行。
angular.module('yourmodule').factory('httpRequestInterceptor',
['$rootScope', function($rootScope)
{
return {
request: function($config) {
if( $rootScope.user.loginticket )
{
$config.headers['your-auth-ticket'] = $rootScope.user.loginticket;
}
return $config;
}
};
}]);
并将其添加到应用程序配置中:
$httpProvider.interceptors.push('httpRequestInterceptor');
jQuery 有一种简单有效的方法来为其所有 AJAX 请求设置通用 header。
那就是:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
如何在 AngularJS
中进行这样的全局设置可以通过配置应用模块为整个应用程序设置header。
var app = angular.module("auth", []);
// Configure auth app
app.config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.headers.common['Accept'] = 'application/json, text/javascript';
$httpProvider.defaults.headers.common['Content-Type'] = 'application/json; charset=utf-8';
$httpProvider.defaults.headers.common['X-CSRF-TOKEN'] = $('meta[name="csrf-token"]').attr('content')
}]);
// Parent controller
app.controller("auth", function ($scope) {
// Your $http requests will have the common information above
});
您可以像 Milad 所说的那样在您的应用程序配置中设置 headers,或者您可以使用 http 拦截器 概念。
每当启动 http 调用时都会调用拦截器,并且拦截器会在实际调用过程之前 运行。
angular.module('yourmodule').factory('httpRequestInterceptor',
['$rootScope', function($rootScope)
{
return {
request: function($config) {
if( $rootScope.user.loginticket )
{
$config.headers['your-auth-ticket'] = $rootScope.user.loginticket;
}
return $config;
}
};
}]);
并将其添加到应用程序配置中:
$httpProvider.interceptors.push('httpRequestInterceptor');