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

并不是一切的浏览器都完全的完成了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);
    原文作者:JS菌
    原文地址: https://segmentfault.com/a/1190000004487561
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞