本文實例講述了原生js封裝的ajax方法。分享給大家供大家參考,具體如下:
眾所周知,框架之間會有沖突,這是源生js就起到作用了,下面介紹一種源生js封裝的ajax請求。
function ajax(options) { options = options || {}; options.type = (options.type || "GET").toUpperCase(); options.dataType = options.dataType || "json"; var params = formatParams(options.data); //創建xhr對象 - 非IE6 if (window.XMLHttpRequest) { var xhr = new XMLHttpRequest(); } else { //IE6及其以下版本瀏覽器 var xhr = new ActiveXObject('Microsoft.XMLHTTP'); } //GET POST 兩種請求方式 if (options.type == "GET") { xhr.open("GET", options.url + "?" + params, true); xhr.send(null); } else if (options.type == "POST") { xhr.open("POST", options.url, true); //設置表單提交時的內容類型 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(params); } //接收 xhr.onreadystatechange = function () { if (xhr.readyState == 4) { var status = xhr.status; if (status >= 200 && status < 300) { options.success && options.success(xhr.responseText); } else { options.fail && options.fail(status); } } }}//格式化參數function formatParams(data) { var arr = []; for (var name in data) { arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[name])); } arr.push(("v=" + Math.random()).replace(".","")); return arr.join("&");}
調用方法
ajax({ url: "data.json", type: "GET", data: {}, dataType: "json", success: function (response) { // 此處放成功后執行的代碼 // 解析返回的字符串 轉為json對象 var usingdata = eval("("+response+")").data; } fail: function (status) { // 此處放失敗后執行的代碼 }});
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答
圖片精選