原生js封裝ajax ...
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>AJAX</title>
</head>
<body>
<script type="text/javascript">
function Ajax(parameter){
var xhr=null;
var message=null;
var newurl=null;
var method=parameter.method=="post"?"post":"get";
var url=parameter.url;
var sync=parameter.sync==true?true:false;
var success=parameter.success;
var dataType=parameter.dataType;
//創建XML對象
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();//標準瀏覽器
}
else if(window.ActiveXObject){
xhr=new ActiveXObject("Microsoft.XMLHTTP");//IE
}
if(method=="post"){
message=url.substring(url.indexOf("?")+1,url.length);//獲取?之後的內容(不包括?)
newurl=url.substring(0,url.indexOf("?"));//獲取?之前的內容(不包括?)
xhr.open(method,newurl,sync);//準備發送請求(配置參數),還沒發送
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//post提交方式不像get提交方式是預設的,post方式你需要告訴瀏覽器你使用post提交方式,所以就需要這個請求頭
xhr.send(message);//發送請求
}
else if(method=="get"){
xhr.open(method,url,isNsychronous);
xhr.send(message);//這裡面的null 有的老版本瀏覽器得放一個null相容處理吧算是
}
xhr.onreadystatechange=function()
{
if(xhr.readyState==4){
if(xhr.status==200){
var data=dataType=='xml'?xhr.responseXML:xhr.responseText;
success &&success(data);//成功返回數據的時候調用這個函數
}
else{
alert("出錯了,帥氣喆");//失敗的時候也可以調用函數 看你需求啦
}
}
}
}
var parameter={
method:"post"
,url:"test.php?username=admin&password=1234",
sync:true,
success:function(data){
console.log(data);
},
dataType:"json"
};
Ajax(parameter);
</script>
</body>
</html>