【问题标题】:Global header for AngularJS postAngularJS 帖子的全局标头
【发布时间】:2013-11-20 14:59:07
【问题描述】:

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

【问题讨论】:

  • 阅读文档中的设置标题部分

标签: jquery angularjs http-headers


【解决方案1】:

哇...就在我面前!

如@charlietfl 所说,阅读“设置标题”部分......这真的很简单。

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

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

要添加或覆盖这些默认值,只需添加或删除一个属性 从这些配置对象。为 HTTP 方法添加标头 除了 POST 或 PUT,只需添加一个小写的新对象 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() };
}); 

【讨论】:

  • 但是我们需要对所有模块都这样做。有没有办法为所有模块全局设置它?
  • 没有测试...但我认为它可能有效... module.config(['$httpProvider', function($httpProvider) { $httpProvider.defaults.headers.post = '我的东西' }]);
猜你喜欢
  • 2012-09-13
  • 1970-01-01
  • 2019-07-28
  • 2021-01-03
  • 1970-01-01
  • 2018-01-11
  • 1970-01-01
  • 2022-10-18
  • 1970-01-01
相关资源
最近更新 更多