js 使用ajax设置和获取自定义header信息的方法小结


Posted in Javascript onMarch 12, 2020

本文实例讲述了js 使用ajax设置和获取自定义header信息的方法。分享给大家供大家参考,具体如下:

1、js ajax 设置自定义header

1.1 方法一:

$.ajax({
  type: "POST",
  url: "Handler1.ashx",
  contentType: "application/x-www-form-urlencoded",
  beforeSend: function (request) {
    request.setRequestHeader("token1", "Chenxizhang");
  },
  success: function (data) {
    //your code
  }
});

1.2 方法二:

$.ajax({
  headers: {
    "testheader": "test"
  },
  type: "POST",
  url: "Handler1.ashx",
  contentType: "application/x-www-form-urlencoded",
  success: function (data) {
    //your code
  }
});

2、js ajax 获取请求返回的response的header信息

ajax请求完成,会返回xhr(XMLHTTPRequest)对象,这里面会包含返回的头信息,可以通过getResponseHeader(key)和getAllResponseHeaders()获取header信息;

$.ajax({
  type: "POST",
  url: "Handler1.ashx",
  contentType: "application/x-www-form-urlencoded",
  success: function (data) {
    //your code
  },
  complete: function (xhr, data) {
    /* 
      获取相关Http Response header
      getResponseHeader(key):获取指定头信息
      getAllResponseHeaders():获取全部可默认可获取的头信息
    */
    var date=xhr.getResponseHeader('Date');// 服务器端时间
    
    //获取服务端自定义的header信息
    var stoken = xhr.getResponseHeader('servertoken');
    
    var list = xhr.getAllResponseHeaders();
    console.log(list);
    /*
    date: Fri, 12 Jul 2019 12:41:00 GMT
    content-encoding: gzip
    server: Microsoft-IIS/10.0
    x-aspnet-version: 4.0.30319
    x-powered-by: ASP.NET
    vary: Accept-Encoding
    content-type: text/plain; charset=utf-8
    servertoken: test1
    cache-control: private
    content-length: 129
    */
    
  }
});

3、js ajax 跨域请求的情况下获取自定义的header信息

JS AJAX 跨域请求的时候是不能设置自定义的header信息的,但是是可以在response中获取到服务端自定义的header信息,前提是服务端设置了Access-Control-Expose-Headers;

下面是 ASP.NET 的服务端示例:

public void ProcessRequest(HttpContext context)
{
  context.Response.AddHeader("Access-Control-Allow-Origin", "*");
  context.Response.AddHeader("Access-Control-Allow-Headers", "*");
  context.Response.AddHeader("Access-Control-Allow-Methods", "*");
  //自定义header信息
  context.Response.AddHeader("servertoken", "test");
  context.Response.AddHeader("Access-Control-Expose-Headers", "servertoken");
  context.Response.ContentType = "text/plain";
  context.Response.Write("Hello World");
}

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
newxtree.js代码
Mar 13 Javascript
什么是Node.js?Node.js详细介绍
Jun 01 Javascript
深入分析js的冒泡事件
Dec 05 Javascript
JavaScript实现文字与图片拖拽效果的方法
Feb 16 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
Mar 26 Javascript
javascript委托(Delegate)blur和focus用法实例分析
May 26 Javascript
详解JavaScript中数组的相关知识
Jul 29 Javascript
微信小程序 闭包写法详细介绍
Dec 14 Javascript
Angularjs中使用指令绑定点击事件的方法
Mar 30 Javascript
JavaScript中的高级函数
Jan 04 Javascript
Vue infinite update loop的问题解决
Apr 23 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
Aug 07 Javascript
javascript实现拖拽碰撞检测
Mar 12 #Javascript
原生js实现碰撞检测
Mar 12 #Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
Mar 12 #Javascript
three.js利用射线Raycaster进行碰撞检测
Mar 12 #Javascript
JS实现碰撞检测效果
Mar 12 #Javascript
使用JS实现动态时钟
Mar 12 #Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
Mar 12 #Javascript
You might like
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
php购物网站支付paypal使用方法
2010/11/28 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
在for循环中length值是否需要缓存
2015/07/27 Javascript
jQuery实现每隔几条元素增加1条线的方法
2016/06/27 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
Python中使用不同编码读写txt文件详解
2015/05/28 Python
Python抽象类的新写法
2015/06/18 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
Python基于template实现字符串替换
2020/11/27 Python
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
新加坡第一的杂货零售商:NTUC FairPrice
2020/12/05 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
会计学自我鉴定
2014/02/06 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
新闻稿格式范文
2015/07/18 职场文书
中学音乐课教学反思
2016/02/18 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技