JavaScirpt中的XMLHttpRequest对象提供了对 HTTP 协议的完全访问,使用该对象可以在不刷新页面的情况与服务器交互数据。XMLHttpRequest是实现AJAX技术的关键对象,本站曾整理过一篇介绍该对象的文章: JS使用XMLHttpRequest对象与服务器进行数据交互 ,今天将介绍使用XMLHttpRequest对象收发JSON格式数据。

应用场景

在工作中有一个应用需要使用验证码,在用户输入验证码后,使用AJAX技术将用户输入内容提交到服务器端进行验证。服务器端数据的收发都是基于JSON格式的,因此,在发送数据时需要设置数据的请求格式,收到服务器响应内容后也要对数据进行处理。

关键代码

var captcha = document.getElementsByName('captcha')[0];  //用户输入验证码的input
captcha.onchange = function(){var xhr = new XMLHttpRequest();//使用HTTP POST请求与服务器交互数据xhr.open("POST", "/captcha", true);//设置发送数据的请求格式xhr.setRequestHeader('content-type', 'application/json');xhr.onreadystatechange = function() {if (xhr.readyState == 4) {//根据服务器的响应内容格式处理响应结果if(xhr.getResponseHeader('content-type')==='application/json'){var result = JSON.parse(xhr.responseText);  //根据返回结果判断验证码是否正确if(result.code===-1){alert('验证码错误');}} else {console.log(xhr.responseText);}}}var sendData = {captcha:this.value};//将用户输入值序列化成字符串xhr.send(JSON.stringify(sendData));
}

相关代码解释

xhr.open(“POST”, “/captcha”, true):这一句传入了三个参数,第一个参数POST是HTTP请求类型为。/captcha是请求路由,即:请求网址。true表示这是一个异步请求。

xhr.setRequestHeader(‘content-type’, ‘application/json’):这一句实际上是在HTPP请求的header中添加content-type。

xhr.getResponseHeader(‘content-type’)===‘application/json’:这一句是判断服务器的响应内容格式,如果是’application/json’格式就说明可以转换为JSON对象,之后客户端就可以按JSON对象格式进行数据处理。

xhr.send(JSON.stringify(sendData)):xhr.send()方法要求传入数据格式是字符串或Document对象,但传入数据是一个Object,所以需要使用JSON.stringify()将其序列化成字符串。

JS使用XMLHttpRequest对象POST收发JSON格式数据相关推荐

  1. JSON数据格式----- JavaScript与JSON、JavaScript的JSON对象、构建JSON格式数据

    JavaScript与JSON JSON是一种语法,用来序列化对象.数组等的.它只是基于JavaScript语法 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zWMc ...

  2. JavaScript解析json格式数据简单示例

    JavaScript解析json格式数据简单示例 本文通过for循环来获取json结点数据,需要的朋友可以参考以下这串json数据用来存储预加载的图片路径: 代码如下: var imgData = [ ...

  3. [工具库]JOJSONBuilder工具类——一键把多个bean对象数据转换为JSON格式数据

    本人大四即将毕业的准程序员(JavaSE.JavaEE.android等)一枚,小项目也做过一点,于是乎一时兴起就写了一些工具. 我会在本博客中陆续发布一些平时可能会用到的工具. 代码质量可能不是很好 ...

  4. Node.js:项目中的 package.json 格式

    1. node.js 项目包下的 package.json : 实例: {"name" : "chatroooms","version" : ...

  5. ajax json 渲染 html,jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例

    本文实例讲述了jquery+ajax+js实现请求json格式数据并渲染到html页面操作.分享给大家供大家参考,具体如下: 1.先给json格式的数据: [ {"id":1,&q ...

  6. php使用 js格式解析,JavaScript解析JSON格式数据的方法示例

    本文实例讲述了JavaScript解析JSON格式数据的方法.分享给大家供大家参考,具体如下: 1.使用JavaScript提供的eval()函数function JsonText1() { var ...

  7. 对象序列化成JSON格式

    json是一种轻量级的数据交换语言,将对象序列化为json格式,可以在网络上传输,且各个平台都有成熟的工具,可以很快的将json反序列化为对应语言所需要的格式. 将java对象序列化为json格式关键 ...

  8. JS的Form表单转JSON格式

    一.serialize()方法 格式:var data = $("#formID").serialize(); 功能:将表单内容序列化成一个字符串. 注意:要使用params = ...

  9. 消息转换器之把返回来的对象转换成json格式

    消息转换器之把返回来的对象转换成json格式 这个是把数据库的数据通过对象返给前端,会出现下列没有转换的现象 这个需要我们加入消息转换器进行转换,把Java对象转为json字符串,在配置类加入这段代码 ...

最新文章

  1. 阿里90后科学家研发,达摩院开源新一代AI算法模型
  2. 【剑指offer-Java版】20顺时针打印矩阵
  3. Power Strings_JAVA
  4. pandas fillna_6个提升效率的pandas小技巧
  5. 使用PaddleFluid和TensorFlow训练RNN语言模型
  6. ui边框设计图_UI设计形状和对象基础知识:填充和边框
  7. php curl获取登陆cookie,PHP curl 模拟登陆 获取cookie
  8. ajax 错误信息error,jquery ajax的error错误信息
  9. Jaeger插件开发及背后的思考
  10. Java讲课笔记15:抽象类、接口和多态
  11. arm平台下linux c语言编程,简单分析针对ARM平台的C语言程序的编译问题
  12. 迁移到云端之前需要考虑哪些问题?
  13. Asp.net MVC权限设计思考 (二)逻辑部分实现
  14. 基于React的AmazeUI-touch使用(如何使用react)
  15. 树莓派使用 python IIC 驱动 OLED 刷新率低问题与解决
  16. 书蠹诗魔——张岱《湖心亭看雪》
  17. 电脑系统没有自带的字体-楷体GB2312字体 免费版提供下载
  18. Matlab抓取网页数据
  19. 苹果手机电池怎么保养_手机电池损耗检测,电池修复软件
  20. java打印直角三角形解析_编写java程序,打印3个5行直角三角形图案 运行效果如下: 使用 方法 实现 代码截图,必须含有2位学号+姓名_学小易找答案...

热门文章

  1. 32个最热CPLD-FPGA论坛
  2. power bi 日期计算_PowerBI 动态计算周内日权重指数
  3. python有没有帮助_没想到,python给我的帮助竟然这么大
  4. shell tr 替换 空格_Shell 字符串分隔符!!!(全网最详细总结)
  5. 服务器apache远程命令,Linux实例:用socket通讯远程执行命令
  6. python两个二维数组加法_对二维数组的多个列进行Numpy平均
  7. mysql分页查询减轻压力_mysql分页查询优化
  8. 【caffe-Windows】mnist实例编译之model的使用-matlab
  9. iOS中持久化存储SQLite(一)
  10. Django 下添加左侧字段显示和搜索