AngularJS帖子的全局标题

Fel*_*sso 5 jquery http-headers angularjs

如何使用AngularJS创建类似于jQuery的全局标头?

像这样的东西:

$.ajaxSetup({
    beforeSend: function (xhr) {
        xhr.setRequestHeader('Requested-With', 'XMLHttpRequest');
        xhr.setRequestHeader('__RequestVerificationToken', 'abc123');
    }
});
Run Code Online (Sandbox Code Playgroud)

现在我这样做:

$http({
    url: 'mysite.com/',
    method: 'POST',
    data: 'data',
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
Run Code Online (Sandbox Code Playgroud)

Fel*_*sso 13

哇......它就在我面前!

阅读"设置标题"部分为@charlietfl说...这很简单.

http://docs.angularjs.org/api/ng.$http

设置HTTP标头$ http服务将自动为所有请求添加某些HTTP标头.可以通过访问$ httpProvider.defaults.headers配置对象来完全配置这些​​默认值,该配置对象当前包含此默认配置:

要添加或覆盖这些默认值,只需在这些配置对象中添加或删除属性即可.要为POST或PUT以外的HTTP方法添加标头,只需添加一个带有小写HTTP方法名称的新对象作为密钥,例如

$httpProvider.defaults.headers.post = { 'My-Header' : 'value' }
Run Code Online (Sandbox Code Playgroud)

示例代码

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() };
}); 
Run Code Online (Sandbox Code Playgroud)