Ajax看这一篇就足够了:ajax,XMLHttpRequest,xml,json,FormData,跨域
    		       		warning:
    		            这篇文章距离上次修改已过449天,其中的内容可能已经有所变动。
    		        
        		                
                Ajax(Asynchronous JavaScript and XML)是一种在网页中实现异步数据交换的技术,用于与服务器进行数据交换,不需要重新加载页面。在这里,我将会介绍Ajax的基本使用方法,包括XMLHttpRequest对象、XML数据格式和JSON数据格式、FormData对象以及如何处理跨域问题。
- XMLHttpRequest对象
 
XMLHttpRequest对象是Ajax的核心部分,它是一个API,允许在JavaScript中发出HTTP请求。
var xhr = new XMLHttpRequest();
xhr.open("GET", "url", true);
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && xhr.status == 200) {
        var data = xhr.responseText;
        console.log(data);
    }
};
xhr.send();- XML数据格式
 
虽然现在JSON更为流行,但是Ajax还是可以处理XML格式的数据。
xhr.open("GET", "url", true);
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && xhr.status == 200) {
        var xmlDoc = xhr.responseXML;
        var txt = "";
        var x = xmlDoc.getElementsByTagName("name");
        for (var i = 0; i < x.length; i++) {
            txt += x[i].childNodes[0].nodeValue + "<br>";
        }
        document.getElementById("demo").innerHTML = txt;
    }
};
xhr.send();- JSON数据格式
 
JSON是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。
xhr.open("GET", "url", true);
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && xhr.status == 200) {
        var data = JSON.parse(xhr.responseText);
        console.log(data);
    }
};
xhr.send();- FormData对象
 
当需要通过POST方法发送表单数据时,可以使用FormData对象。
var formData = new FormData();
formData.append("name", "value");
xhr.open("POST", "url", true);
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && xhr.status == 200) {
        console.log(xhr.responseText);
    }
};
xhr.send(formData);- 跨域请求
 
出于安全考虑,浏览器默认禁止跨域请求。但是,可以通过CORS(Cross-Origin Resource Sharing),在服务器上设置响应头来允许特定的跨域请求。
xhr.open("GET", "url", true);
xhr.withCredentials = true;
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && xhr.status == 200) {
        console.log(xhr.responseText);
    }
};
xhr.send();以上就是Ajax的基本使用方法,包括XMLHttpRequest对象、XML和JSON数据格式、FormData对象以及如何处理跨域问题。
评论已关闭