原生封装一个类似于JQ的ajax方法
Posted 原来_是你
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生封装一个类似于JQ的ajax方法相关的知识,希望对你有一定的参考价值。
function $ajax(json){ //初始化参数 if(!json){ return; } json.type = json.type || ‘GET‘; json.url = json.url || ""; json.async = json.async || true; json.data = json.data || {}; json.succeed = json.succeed || function(){} if(json.dataType=="jsonp"){ var oScript=document.createElement("script") oScript.src=json.url document.body.appendChild(oScript); oScript.remove() return } //将json.data对象转为符合传递参数的格式 var arr = []; for(var key in json.data){ arr.push(key + ‘=‘ + json.data[key]); } var str = arr.join(‘&‘); alert(str); var xhr = new XMLHttpRequest(); if(json.type.toUpperCase() === ‘GET‘){ xhr.open(json.type,json.url + "?" + str,json.async); xhr.send(); }else if(json.type.toUpperCase() === ‘POST‘){ xhr.open(json.type,json.url,json.async); xhr.setRequestHeader("content-type","application/x-www-form-urlencoded;charset=utf-8"); xhr.send(str); } xhr.onreadystatechange = function(){ if(xhr.readyState === 4 && xhr.status === 200){ json.succeed(xhr.responseText); } } }
以上是关于原生封装一个类似于JQ的ajax方法的主要内容,如果未能解决你的问题,请参考以下文章