JavaScript Ajax與Comet——「XMLHttpRequest2級」的注意要點

並不是全部的瀏覽器都完整的實現了XMLHttpRequest 2 級的規範, 可是全部的瀏覽器都實現了它部分的規範。php

FormData

  • FormData類型瀏覽器

  • append()向其添加數據,包含兩個參數:鍵和值;服務器

如:app

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

也能夠用表單元素的數據預先想其中填入鍵值對:ide

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

它是爲序列化表單以及建立於表單格式相同的數據提供了遍歷:post

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對象上設置請求頭部。code

超時設定

IE8+惟一支持的超時設定事件,XHR對象的ontimeout事件。XHR對象的timeout設定超時時間,單位是毫秒數。這些設定要方法open以後,send以前。orm

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以前。xml

xhr.open("get", "getexample.php", true);
xhr.overrideMimeType("text/xml");
xhr.send(null);
相關文章
相關標籤/搜索