如何使用AngularJS创建类似于jQuery的全局标头?
这样的事情:
$.ajaxSetup({
beforeSend: function (xhr) {
xhr.setRequestHeader('Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('__RequestVerificationToken', 'abc123');
}
});
现在我这样做:
$http({
url: 'mysite.com/',
method: 'POST',
data: 'data',
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
答案 0 :(得分:13)
阅读“设置标题”部分,如@charlietfl所说......这很简单。
http://docs.angularjs.org/api/ng.$http
设置HTTP标头$ http服务会自动添加某些内容 所有请求的HTTP标头。可以完全配置这些默认值 通过访问$ httpProvider.defaults.headers配置对象, 目前包含此默认配置:
要添加或覆盖这些默认值,只需添加或删除属性即可 来自这些配置对象。添加HTTP方法的标头 除了POST或PUT之外,只需添加一个带有lowercase的新对象 HTTP方法名称作为密钥,例如
$httpProvider.defaults.headers.post = { 'My-Header' : 'value' }
示例代码
var app = angular.module('app', ['app.controller', 'app.service']);
app.config(function ($httpProvider) {
$httpProvider.defaults.headers.post = { "X-Requested-With": "XMLHttpRequest", "__RequestVerificationToken": $('[name=__RequestVerificationToken]').val() };
});