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 相关文章推荐
10个基于Jquery的幻灯片插件教程
Oct 29 Javascript
基于jQuery实现模拟页面加载进度条
Apr 01 Javascript
jQuery修改CSS伪元素属性的方法
Jul 30 Javascript
jquery插件推荐 jquery.cookie
Nov 09 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
Apr 29 Javascript
jQuery自适应轮播图插件Swiper用法示例
Aug 24 Javascript
React创建组件的三种方式及其区别
Jan 12 Javascript
vue 通过下拉框组件学习vue中的父子通讯
Dec 19 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
Dec 27 Javascript
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
May 28 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
Apr 17 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
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
ES6关于Promise的用法详解
2018/05/07 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
利用Python如何生成hash值示例详解
2017/12/20 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
python浪漫表白源码
2019/04/05 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
计算机开发个人求职信范文
2013/09/26 职场文书
老师给学生的表扬信
2014/01/17 职场文书
商场父亲节活动方案
2014/08/27 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
pytorch MSELoss计算平均的实现方法
2021/05/12 Python
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技