XMLHttpRequest1只是对已经存在的xhr对象细节进行规范定义, XMLHttpRequest2升级了该对象。

FormData 类型
可以用在xhr传输的时候,把表单序列化或者将数据以表单格式传输
Var data = new FormData()
data. append("name","xiangwei")

直接把表单传进入进行序列化:
var data = new FormData(document. forms[0]);
当你建立好一个 FormData实例以后,就可以把它放到send方法里发送给服务器了:
var xhr = createXHR();
xhr.onreadystatechange = function(){
if (xhr.readyState == 4){
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){
alert(xhr.responseText);
} else {
alert(“Request was unsuccessful: “ + xhr.status);
}
}
};
xhr.open(“post”, “postexample.php”, true);
var form = document.getElementById(“user-info”);
xhr.send(new FormData(form))

还有一个好处是formdata类型不需要手动设置内容类型,xhr会自动识别并且添加header。

Timeouts 超时
这个属性用来设置等待相应的时间,超过了还没有接收到服务器响应的话,就会触发timeout事件,该请求也会中断。但是readystate还是会改为4,不过在过时以后接入state属性会产生错误,需要捕获,目前ie8以上实现了。
var xhr = createXHR();
xhr.onreadystatechange = function(){
if (xhr.readyState == 4){
try {
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){
alert(xhr.responseText);
} else {
alert(“Request was unsuccessful: “ + xhr.status);
}
} catch (ex){
//assume handled by ontimeout
}
}
};
xhr.open(“get”, “timeout.php”, true);
xhr.timeout = 1000; //set timeout for 1 second (IE 8+ only)
xhr.ontimeout = function(){
alert(“Request did not return in a second.”);
};
xhr.send(null);

overrideMimeType()方法
因为服务器返回的响应MIME类型决定了xhr对象如何处理数据,该方法可以覆盖掉服务器返回的类型,用自己定义的类型来处理。

例如返回的数据为xml但是服务器给的MIME类型为text/plain,那么responseXML属性就是null:
var xhr = createXHR();
xhr.open(“get”, “text.php”, true);
xhr.overrideMimeType(“text/xml”);
xhr.send(null);
注意的是,要在send之前调用。

转载于:https://www.cnblogs.com/chuangweili/p/5166324.html

XMLHttpRequest2 异步 ajax相关推荐

  1. ExtJs异步ajax调用和同步ajax调用公用方法

    Js代码 //异步ajax调用 /** * 异步调用ajax,成功后返回值,作为回调函数的参数 调用失败会提示 * * @param {} *            urlStr * @param { ...

  2. Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案)

    这篇文章主要介绍了用Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案),需要的朋友可以参考下 问题 前端小同学在做页面的时候,犯了个常见的错误:把多个Ajax请求顺序着写下来了, ...

  3. ajax调用api改表格数据库,【django基础】django接口 异步ajax请求 导出数据库成excel表(包裹前端后端)...

    py文件: from django.utils.http import urlquote from rest_framework.views import APIView from django.sh ...

  4. silverlight ajax调用,使用异步AJAX时,Silverlight应用程序不会变为空闲

    我目前正在使用支持自身和JavaScript之间双向通信的Silverlight 5应用程序. Silverlight应用程序负责渲染3D内容,JavaScript负责收集和准备渲染数据.使用异步AJ ...

  5. ajax. jquery. 异步,jQuery之异步Ajax请求使用

    $.ajax({type:'',data:'',async:''...}) 参数: 1.cache: true缓存页面 false 不缓存页面 (默认: true,dataType为script和js ...

  6. Ajax简介、封装、同步异步 Ajax相关面试题

    一.Ajax 简介 (1)什么是 Ajax ? Ajax = 异步 JavaScript 和 XML: Ajax 是一种用于创建快速动态网页的技术: 通过在后台与服务器进行少量数据交换,Ajax 可以 ...

  7. MVC下HtmlHelper自带BeginForm表单提交与异步Ajax请求

    假如有一个数据表格UserInfo: public class UserInfo {public int Id { get; set; }public string Name { get; set; ...

  8. AJAX异步--ajax请求

    AJAX请求 这篇文章是AJAX异步文章的附加二: 这篇文章我们将的是$.ajax请求来实现异步的操作 $.ajax请求有很多,但我们主讲jQuery.ajax(url,[settings]).jQu ...

  9. dede文章异步ajax加载,织梦DedeCMS列表“加载更多”“无限下拉”Ajax加载使用方法...

    Infinite Ajax Scroll 简称 ias,无限的ajax滚动,是一款jQuery滚动ajax分页插件,当页面滚动到容器可见部分将自动异步加载数据. 下面先来看看效果. 无限下拉效果 点击 ...

最新文章

  1. 250鲁大师跑分_看了鲁大师跑分,会发现MX250独显笔记本已落伍了
  2. 215. 数组中的第K个最大元素 golang
  3. Win10系统省电模式的设置教程
  4. Screenium 3 for Mac - 强大的屏幕录制编辑器
  5. Scrapy的debug方式
  6. android下图片压缩
  7. hive 安装_Hive安装部署及使用——1.2.1版本
  8. JAVA王思聪吃热狗程序_易语言制作王校长吃热狗游戏的源码
  9. 海信电视 LED55K370 升级固件总结【含固件下载地址】
  10. Nginx服务器的gzip压缩详解
  11. 曾鸣分享:阿里集团及阿里眼里的电子商务(瑞士信贷中国投资年会)
  12. 云计算工程师面试题集锦,云计算面试题及答案
  13. 有理数思维导图,七年级数学思维导图整理
  14. 中标麒麟5.0安装(内含安装包)-小白手把手史上最全教程!
  15. 计算机组成原理复习提纲六(CPU结构和功能)
  16. ECDSA VS Schnorr signature VS BLS signature
  17. Android 语音播放Media Player
  18. 计算机网络期末复习总结
  19. 融易宝项目管理平台前台搭建
  20. C/C++ 五子棋游戏

热门文章

  1. 处理增删改_实现数据的增删改查
  2. Java中null和浮点数相乘_jvm规范之浮点数 - 你知道吗,有个数字它和自身不相等...
  3. 流放之路材质过滤怎么设置_用一张漫反射贴图可以做写实材质吗?
  4. TensorFlow2 实现神经风格迁移,DIY数字油画定制照片
  5. for循环在c++中的用法_C ++中的循环
  6. testng 取消并行_TestNG并行执行
  7. 索引多维数组_PHP数组–索引,关联和多维
  8. CloudEra Hadoop VMWare单节点环境设置
  9. pip添加国内镜像源
  10. MongoTemplate 关于 insert 和 save 函数的区别