並不是全部的瀏覽器都完整的實現了XMLHttpRequest 2 級的規範, 可是全部的瀏覽器都實現了它部分的規範。php
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);
用於重寫XHR響應的MIME類型。它能強迫服務器返回的數據類型給些爲本方法提供的類型。使用方法:
在open以後,send以前。xml
xhr.open("get", "getexample.php", true); xhr.overrideMimeType("text/xml"); xhr.send(null);