资讯专栏INFORMATION COLUMN

JavaScript Ajax与Comet——“XMLHttpRequest2级”的注意要点

melody_lql / 3174人阅读

摘要:并非所有的浏览器都完整的实现了级的规范,但是所有的浏览器都实现了它部分的规范。超时设定唯一支持的超时设定事件,对象的事件。方法用于重写响应的类型。它能强迫服务器返回的数据类型给些为本方法提供的类型。

并非所有的浏览器都完整的实现了XMLHttpRequest 2 级的规范, 但是所有的浏览器都实现了它部分的规范。

FormData

FormData类型

append()向其添加数据,包含两个参数:键和值;

如:

var data = new FormData();
data.append("name", "oliver");

也可以用表单元素的数据预先想其中填入键值对:

var data = new FormData(document.forms[0]);

它是为序列化表单以及创建于表单格式相同的数据提供了遍历:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) {
        if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
            console.log(xhr.responseText);
        } else {
            console.log("error");
        }
    }
};
xhr.open("post", "postexample.php", true);
var form = document.getElementById("form1");
xhr.send(new FormData(form));

它的方便之处在于不用明确的在XHR对象上设置请求头部。

超时设定

IE8+唯一支持的超时设定事件,XHR对象的ontimeout事件。XHR对象的timeout设定超时时间,单位是毫秒数。这些设定要方法open之后,send之前。

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) {
        if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
            console.log(xhr.responseText);
        } else {
            console.log("error");
        }
    }
};
xhr.open("get", "getexample.php", true);
xhr.timeout = 1000;
xhr.ontimeout = function () {
    alert("Request did not return in a second.");
};
xhr.send(null);
overrideMimeType()方法

用于重写XHR响应的MIME类型。它能强迫服务器返回的数据类型给些为本方法提供的类型。使用方法:
在open之后,send之前。

xhr.open("get", "getexample.php", true);
xhr.overrideMimeType("text/xml");
xhr.send(null);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87697.html

相关文章

  • JavaScript AjaxComet——“进度事件”注意要点

    摘要:有以下个进度事件在接收到响应数据的第一个字节时触发。在接收响应数据期间持续的触发在请求发生错误时触发在因调用方法而终止连接时触发在接收到完整的响应数据时触发在通信完成或者触发,,事件后触发。 有以下6个进度事件: loadstart: 在接收到响应数据的第一个字节时触发。 progress: 在接收响应数据期间持续的触发 error: 在请求发生错误时触发 abort: 在因调用ab...

    ad6623 评论0 收藏0
  • JavaScript AjaxComet——“其他跨域技术”注意要点

    摘要:由两部分组成回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数,回调函数的名字一般是在请求中指定的。下面是以个的例子回调函数的名字就是是通过动态的元素来使用的,使用时可以为属性指定一个跨域。是为与其他传递消息的很相似。 图像Ping技术 根据一个网页可以从任何网页中加载图像而不用担心使用跨域的原理, 我们可以动态的创建图像, 使用他们的onload和onerror事件处理程序...

    Hwg 评论0 收藏0
  • JavaScript AjaxComet——“XMLHttpRequest对象”注意要点

    摘要:在中,对象是通过库中的对象实现的。可以检测对象的属性,该属性表示请求响应过程的当前活动阶段。已经调用但尚未接收到响应接收。由于内存原因,不建议重用对象。头部信息对象提供了操作请求头部和响应头部信息的方法。建议使用自定义的头部名称。 在IE5中,XHR对象是通过MSXML库中的ActiveX对象实现的。在IE中可能会遇到三种不同版本的XHR对象,即MSXML2.XMLHttp、MSXML...

    Martin91 评论0 收藏0
  • JavaScript AjaxComet——“跨源资源共享”注意要点

    摘要:注意请求和响应都不包含信息。对象的安全机制部分实现了的规范。请求返回后会触发事件,响应数据保存在属性中。无论是同源请求还是跨域请求,对于本地资源最好使用相对,在访问远程资源时再使用绝对。发送请求之后,服务器决定是否允许这种类型的请求。 通过XHR实现Ajax通信的一个主要限制,来源于跨域安全策略。在默认情况下,Ajax只能访问与包含它的页面位于同一个域中的资源。但是有时也需要一些跨域的...

    haobowd 评论0 收藏0
  • AjaxComet-JavaScript程序设计第21章读书笔记(1)

    摘要:技术的核心是对象即。收到响应后,响应的数据会自动填充对象的属性,相关的属性有作为响应主体被返回的文本。收到响应后,一般来说,会先判断是否为,这是此次请求成功的标志。中的版本会将设置为,而中原生的则会将规范化为。会在取得时报告的值为。 Ajax(Asynchronous Javascript + XML)技术的核心是XMLHttpRequest对象,即: XHR。虽然名字中包含XML,但...

    imingyu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<