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 相关文章推荐
ExtJS 2.0 实用简明教程之布局概述
Apr 29 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
Jul 31 Javascript
jQuery链式调用与show知识浅析
May 11 Javascript
使用bootstrap实现多窗口和拖动效果
Sep 22 Javascript
jQuery实现圣诞节礼物动画案例解析
Dec 25 Javascript
vue分类筛选filter方法简单实例
Mar 30 Javascript
WebSocket的通信过程与实现方法详解
Apr 29 Javascript
微信小程序云开发如何使用云函数生成二维码
May 18 Javascript
JS实现滑动导航效果
Jan 14 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
Apr 07 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
Oct 27 Javascript
vue项目中js-cookie的使用存储token操作
Nov 13 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 $_SERVER当前完整url的写法
2009/11/12 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
javascript new 需不需要继续使用
2009/07/02 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
2020/10/13 Javascript
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
python 字符串常用方法汇总详解
2019/09/16 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
上班玩游戏检讨书
2014/02/07 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
初中信息技术教学反思
2016/02/16 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis