// 传统ajax用法 var xhr = new XMLHttpRequest(); xhr.responseType = ‘json‘; xhr.timeout = 2000; console.log(xhr.readyState);//0 xhr.open(‘GET‘, url); console.log(xhr.readyState);//1 xhr.onloadstart = function (e) { xhr.abort(); console.log(e); }; xhr.onprogress = function (e) { console.log(xhr.readyState);//3 console.log(e); }; xhr.onload = function(res) { console.log(res); console.log(xhr.readyState);//4 }; xhr.onerror = function(err) { console.log(err); }; xhr.ontimeout = function (e) { console.log(e); }; xhr.onabort = function(e){ console.log(e); }; xhr.onloaded = function(e){ console.log(e); }; xhr.send(); // 传统ajax用法 function req(url, data, callback) { var xhr = new XMLHttpRequest(); xhr.open(‘POST‘, url); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var res = JSON.parse(request.responseText); callback(res); } }; // post xhr.setRequestHeader(‘Content-Type‘, ‘application/x-www-form-urlencoded‘); xhr.send(data); // get xhr.setRequestHeader("Content-Type", "text/xml;charset=utf-8"); xhr.send(null); } req(url, data, callback()); // 替代ajax的fetch fetch(‘/users.json‘, { method: ‘POST‘, body: data, mode: ‘cors‘, redirect: ‘follow‘, headers: new Headers({ ‘Content-Type‘: ‘text/plain‘ }) }).then(function(res) { console.log(res); }).then(function(res) { console.log(res); }).catch(function (err) { console.log(err); }); // 使用async,await的fetch async function req(url, data) { try { let response = await fetch(url, data); let data = await response.json(); console.log(data); } catch (err) { console.log(err); } } req(‘https://www.baidu.com‘, data);