JavaScript的Ajax封裝GET和POST

來源:互聯網
上載者:User

標籤:代碼   cal   dex   ext   creat   console   ack   rand   obj   

<!DOCTYPE html><html><head> <title>封裝ajax</title></head><body><script type="text/javascript"> function createXHR() { if(typeof XMLHttpRequest != "undefined") { return new XMLHttpRequest(); } else if(typeof ActiveXObject != "undefined") { var versions = [ "MSXML.2.XMLHttp.6.0", "MSXML.2.XMLHttp.3.0", "MSXML.2.XMLHttp" ]; for(var i = 0; i<versions.length;i++) { try{ return new ActiveXObject(version[i]); }catch(e){ // 因類迴圈會報一個錯,跳過些錯 } } } else { throw new Error("你的系統或瀏覽器不支援XHR對象!"); } } // 名值對轉換字串 function params(data) { var arr = []; for(var i in data) { arr.push(encodeURIComponent(i)+"="+encodeURIComponent(data[i])); } return arr.join("&"); } // ajax function ajax(obj) { var xhr=createXHR(); obj.url=obj.url+"?rand="+Math.random(); obj.data = params(obj.data); if(obj.method === "GET") { obj.url+=obj.url.indexOf("?") == -1 ?"?"+ obj.data:"&"+obj.data; } // if it‘s asynchronous if(obj.async === true) { xhr.onreadystatechange = function() { if(xhr.readyState == 4) { callback(); } } } xhr.open(obj.method,obj.url,obj.async); if(obj.method === "POST") { xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xhr.send(obj.data); } else { xhr.send(null); } // iF It‘s synchronization if(obj.async === false) { callback(); } // 封裝重複調用代碼 function callback() { if(xhr.status === 200) { obj.success(xhr.responseText); } else { alert("錯誤碼:"+xhr.status+"-錯誤資訊:"+xhr.statusText); } } } // use ajax addEventListener("click",function(){ ajax({ method:"POST", url:"test.php", data:{ "na&me":"ping", "age":18 }, // 將對象傳到text,然後對象又回調 success:function(text) { console.log("接收success資料為:"+text); }, async:false }); },false);</script></body></html>

JavaScript的Ajax封裝GET和POST

相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。