jQuery提供了一种简单有效的方法来为其所有AJAX请求设置公共标头。
那就是:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
如何在AngularJS中进行这样的全局设置
答案 0 :(得分:4)
可以通过配置应用程序模块为整个应用程序设置标题。
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
});
答案 1 :(得分:1)
您可以在应用的配置中设置标头,例如Milad说的,或者您可以使用 http拦截器概念。
每当启动http调用时都会调用Interceptor,拦截器将在实际调用进程之前运行。
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;
}
};
}]);
并将其添加到app config:
$httpProvider.interceptors.push('httpRequestInterceptor');