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 相关文章推荐
通过JAVAScript实现页面自适应
Jan 19 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
Apr 12 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
Dec 04 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
Mar 27 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
jquery实现点击变换导航样式的方法
Aug 31 Javascript
浅谈js中几种实用的跨域方法原理详解
Dec 02 Javascript
Angular.js中上传指令ng-upload的基本使用教程
Jul 30 Javascript
微信小程序wx:for循环的实例详解
Oct 07 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
React如何实现浏览器打印部分内容详析
May 19 Javascript
VScode格式化ESlint方法(最全最好用方法)
Sep 10 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
ASP知识讲座四
2006/10/09 PHP
php制作动态随机验证码
2015/02/12 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
php表单处理操作
2017/11/16 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
2019/12/25 jQuery
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
对Python w和w+权限的区别详解
2019/01/23 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
浅析Python迭代器的高级用法
2020/07/16 Python
详解python UDP 编程
2020/08/24 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
《十六年前的回忆》教学反思
2014/02/14 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
关于读书的活动方案
2014/08/14 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
56句经典英文座右铭
2019/08/09 职场文书
python - timeit 时间模块
2021/04/06 Python
SQLServer之常用函数总结详解
2021/08/30 SQL Server