AngularJS帖子的全局标题

时间:2013-11-20 14:59:08

标签: jquery angularjs http-headers

如何使用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'}
})

1 个答案:

答案 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() };
});