轉自:https://blog.csdn.net/qq_empire/article/details/81737394
相關鏈接:https://blog.csdn.net/qq_30101879/article/details/77916622
原生ajax使用:
function ajax(url){
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : ActiveXObject("microsoft.XMLHttp")
xhr.open("get",url,true);
xhr.send();
xhr.onreadysattechange = () =>{
if(xhr.readystate == 4){
if(xhr.status == 200){
var data = xhr.responseTEXT;
return data;
}
}
}
}
get方式
function btnClick() {
//創建核心對象
xhr= null;
if (window.XMLHttpRequest) {// code for Firefox, Opera, IE7, etc.
xhr = new XMLHttpRequest();
} else if (window.ActiveXObject) {// code for IE6, IE5
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
//編寫回調函數
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
alert(xhr.responseText)
}
}
//open設置請求方式和請求路徑
xhr.open("get", "/Ajax/ajax2?username=張三");//一個servlet,后面還可以寫是否同步
//send 發送
xhr.send();
}
post
function btnClick() {
//創建核心對象
xhr = null;
if (window.XMLHttpRequest) {// code for Firefox, Opera, IE7, etc.
xhr = new XMLHttpRequest();
} else if (window.ActiveXObject) {// code for IE6, IE5
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
//編寫回調函數
xhr.onreadystatechange = function() {
/* alert(xmlhttp.readyState); */
if (xhr.readyState == 4 && xhr.status == 200) {
alert(xhr.responseText)
}
/* alert(123); */
}
//open設置請求方式和請求路徑
xhr.open("post", "/Ajax/ajax2");//一個servlet,后面還可以寫是否同步
//設置請求頭
xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded")
//send 發送
xhr.send("username=張三");
}
封裝
function ajax_method(url,data,method,success) { // 異步對象 var ajax = new XMLHttpRequest(); // get 跟post 需要分別寫不同的代碼 if (method=='get') { // get請求 if (data) { // 如果有值 url+='?'; url+=data; }else{ } // 設置 方法 以及 url ajax.open(method,url); // send即可 ajax.send(); }else{ // post請求 // post請求 url 是不需要改變 ajax.open(method,url); // 需要設置請求報文 ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded"); // 判斷data send發送數據 if (data) { // 如果有值 從send發送 ajax.send(data); }else{ // 木有值 直接發送即可 ajax.send(); } } // 注冊事件 ajax.onreadystatechange = function () { // 在事件中 獲取數據 並修改界面顯示 if (ajax.readyState==4&&ajax.status==200) { // console.log(ajax.responseText); // 將 數據 讓 外面可以使用 // return ajax.responseText; // 當 onreadystatechange 調用時 說明 數據回來了 // ajax.responseText; // 如果說 外面可以傳入一個 function 作為參數 success success(ajax.responseText); } } }