angular学习笔记(二十四)-$http(2)-设置http请求头

时间:2022-12-11 23:39:37

1. angular默认的请求头:

angular学习笔记(二十四)-$http(2)-设置http请求头

其中,Accept 和 X-Requested-With是$http自带的默认配置

Accept:application/json,text/plain         接受的请求的数据类型: json 文本

X-Requested-With: XMLHttpRequest    请求是通过XMLHttpRequest对象发送的

2. 修改默认请求头:

(1) 全局修改(整个模块)

使用$httpProvider依赖

        var myApp = angular.module('MyApp',[]);

        myApp.config(function($httpProvider){

             console.log($httpProvider.defaults.headers.common)

             //修改/操作$httpProvider.defaults.headers.common对象的属性以改变$http的默认请求头配置

        })

*注意,只能操作 $httpProvider.defaults.headers.common 才有效,直接操作$httpProvider.defaults.headers是无效的.

(2)  特定请求修改(某个http请求)

直接在$http(config)的config参数中的headers项进行配置

demo:

html:

<!DOCTYPE html>
<html ng-app = 'HttpGet'>
<head>
<title>18.2 $http(1)</title>
<meta charset="utf-8">
<script src="angular.js"></script>
<script src="script.js"></script>
</head>
<body>
<div ng-controller = "dataController">
<span>{{data}}</span>
</div>
</body>
</html>

nodejs:

var express = require('express');
var app = express();
app.use(express.static(__dirname+'')); var data = 'angularjs中的$http.get'; app.get('/api/user',function(req,res){
res.send(data)
}); app.listen(3000);

(1).通过$httpProvider对整个模块的$http请求头进行修改:

var httpGet = angular.module('HttpGet',[]);
httpGet.config(function($httpProvider){
    console.log($httpProvider.defaults.headers)
    //删除后请求头里不再有 X-Requested-With 属性
delete $httpProvider.defaults.headers.common['X-Requested-With'];
    //为请求头添加Authorization属性为'code_bunny'  
$httpProvider.defaults.headers.common['Authorization'] = 'code_bunny';
});
httpGet.factory('getData',function($http,$q){
return function(){
var defer = $q.defer();
$http({
method:'get',
url:'/api/user'
}).success(function(data,status,headers,config){
defer.resolve(data);
}).error(function(data,status,headers,config){
defer.reject(data)
});
return defer.promise
}
});
httpGet.controller('dataController',function($scope,getData){
$scope.data = getData()
});

angular学习笔记(二十四)-$http(2)-设置http请求头

(2).通过$http(config)的config参数对该请求的请求头进行配置:

var httpGet = angular.module('HttpGet',[]);
httpGet.factory('getData',function($http,$q){
return function(){
var defer = $q.defer();
$http({
method:'get',
url:'/api/user',
headers: {'Authorization':'code_bunny'} //请求头里会添加Authorization属性为'code_bunny'
}).success(function(data,status,headers,config){
defer.resolve(data);
}).error(function(data,status,headers,config){
defer.reject(data)
});
return defer.promise
}
});
httpGet.controller('dataController',function($scope,getData){
$scope.data = getData()
});

完整代码地址:https://github.com/OOP-Code-Bunny/angular/tree/master/OREILLY/18.3%20%24http(1)

*注: 书上说到可以通过$httpProvider.defaults.headers.get['DNT']='1',来设置不追踪用户浏览信息,但实际尝试后发现是报错的. 

angular学习笔记(二十四)-$http(2)-设置http请求头的更多相关文章

  1. angular学习笔记&lpar;二十六&rpar;-&dollar;http&lpar;4&rpar;-设置请求超时

    本篇主要讲解$http(config)的config中的timeout项: $http({ timeout: number }) 数值,从发出请求开始计算,等待的毫秒数,超过这个数还没有响应,则返回错 ...

  2. angular学习笔记&lpar;二十八-附2&rpar;-&dollar;http&comma;&dollar;resource中的promise对象

    下面这种promise的用法,我从第一篇$http笔记到$resource笔记中,一直都有用到: HttpREST.factory('cardResource',function($resource) ...

  3. angular学习笔记&lpar;二十九&rpar;-&dollar;q服务

    angular中的$q是用来处理异步的(主要当然是http交互啦~). $q采用的是promise式的异步编程.什么是promise异步编程呢? 异步编程最重要的核心就是回调,因为有回调函数,所以才构 ...

  4. angular学习笔记&lpar;二十八-附1&rpar;-&dollar;resource中的资源的方法

    通过$resource获取到的资源,或者是通过$resource实例化的资源,资源本身就拥有了一些方法,$save,$delete,$remove,可以直接调用来保存该资源: 比如有一个$resour ...

  5. angular学习笔记&lpar;二十八&rpar;-&dollar;http&lpar;6&rpar;-使用ngResource模块构建RESTful架构

    ngResource模块是angular专门为RESTful架构而设计的一个模块,它提供了'$resource'模块,$resource模块是基于$http的一个封装.下面来看看它的详细用法 1.引入 ...

  6. angular学习笔记&lpar;二十五&rpar;-&dollar;http&lpar;3&rpar;-转换请求和响应格式

    本篇主要讲解$http(config)的config中的tranformRequest项和transformResponse项 1. transformRequest: $http({ transfo ...

  7. angular学习笔记&lpar;二十二&rpar;-&dollar;http&period;post

    基本语法: $http.post('url',{},{}).success(function(data,status,headers,config){ }).error(function(data,s ...

  8. angular学习笔记&lpar;二十&rpar;-表单验证

    本篇主要介绍angular中的表单验证: 表单验证主要有以下一些内容: 1. required指令: 相当于html5的required属性,验证不能为空 2. ng-maxlength属性: 验证内 ...

  9. angular学习笔记&lpar;三十&rpar;-指令&lpar;2&rpar;-restrice&comma;replace&comma;template

    本篇主要讲解指令中的 restrict属性, replace属性, template属性 这三个属性 一. restrict: 字符串.定义指令在视图中的使用方式,一共有四种使用方式: 1. 元素: ...

随机推荐

  1. CentOS7安装iptables防火墙

    CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables st ...

  2. DirectX基础学习系列4 颜色和光照

    4.1颜色表示 RGB颜色:D3DCOLOR  可以用宏D3DCOLOR_ARGB(a,r,g,b)  D3DCOLOR_XRGB(255,r,g,b) 另外一种浮点表示:D3DCOLORVALUE, ...

  3. JVM复习笔记

    1. JVM是什么? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来 ...

  4. Linux&sol;Unix里,ln -s

    这是硬/软链接的命令ln -s 是创建软链接ln 是创建硬链接 你可以理解为:相当于windows下创建快捷方式一样,所以就不用太多解释了吧. ln -s /usr/lib/libX11.3 libX ...

  5. ubuntu server获取并自动设置最快镜像的方法

    一,安装方法1 add-apt-repository ppa:ossug-hychen/getfastmirrorapt-get install getfastmirror 如果添加了临时源,这样移除 ...

  6. &lbrack;Twisted&rsqb; transport

    transport代表网络上两个节点的连接.它描述了连接的具体细节,如TCP还是UDP. transports实现了ITransport接口,包含以下方法 write:以非阻塞的方式向连接写数据. w ...

  7. spm使用之三spm应用实例

    spm 的init实际上是调用了grunt这个工具来实现一些交互式的提问和数据的获取. 看看npm就知道, npm有个命令叫init, 就是一样的交互式提问获取你要创建的nodejs的模块信息. sp ...

  8. &lpar;二&rpar;、Struts第二天

    (二).Struts第二天 回顾: 问题: 1. Struts2的Action类是单例还是多例? Filter? Servlet? Listener? 2. 介绍struts2框架引入的相关jar包及 ...

  9. 开始你的第一个npm脚本工具

    在实际开发中,一般刚开始一个项目或者刚接手一个项目,我们会运行 npm install 下载安装所有依赖, 在实际开发中,可能也会使用各种命令行-- 来提高我们开发的效率. 与它相处了这么久,你真的了 ...

  10. es6 Generator生成器函数

    生成器函数使用function*声明. 在生成器函数内部,有一种类似return的语法:关键字yield.二者的区别是,普通函数只可以return一次,而生成器函数可以yield多次(当然也可以只yi ...