溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ajax對象包含post和get兩種異步傳輸方式實例

發布時間:2021-07-15 09:29:20 來源:億速云 閱讀:152 作者:chen 欄目:web開發

這篇文章主要介紹“Ajax對象包含post和get兩種異步傳輸方式實例”,在日常操作中,相信很多人在Ajax對象包含post和get兩種異步傳輸方式實例問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Ajax對象包含post和get兩種異步傳輸方式實例”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

復制代碼 代碼如下:


/**
* @author Supersha
* @QQ:770104121
*/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Ajax Document</title>
<script type="text/javascript">
//注意,編碼要同意為utf-8才能避免中文參數和返回中文的亂碼問題
function Ajax(prop){
this.action(prop); //在實例化的時候就調用action方法
}
Ajax.prototype = {
createXHR: function(){ //創建XMLHttpRequest對象
var xhr = false;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xhr;
},
action: function(prop){
var xhr = this.createXHR();
if (xhr) {
var url = encodeURI(prop["url"]); //對URL進行編碼
if (prop["method"] == "GET" && url && prop["success"]) { //GET方法
xhr.onreadystatechange = function(){
(function(){ //自執行函數用于檢查服務器的返回狀態并執行回調函數
if (xhr.readyState == 4 && xhr.status == 200) {
prop["success"](xhr); //執行回調函數
}
})();
};
//alert(prop["hander"] instanceof Function);
xhr.open("GET", url, true);
xhr.send(null);
}
else
if (prop["method"] == "POST" && url && prop["success"]) { //POST方法
xhr.onreadystatechange = function(){
(function(){
if (xhr.readyState == 4 && xhr.status == 200) {
prop["success"](xhr); //執行回調函數
}
})();
};
if (prop["params"]) {
url = url.indexOf("?") > -1 ? url + "&" + prop["params"] : url +"?" + prop["params"];
}
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(null);
}
}
else
if (!xhr && prop["fail"]) {
prop["fail"]();
}
}
}
function getData(){
var ajax = new Ajax({
url: "test.php",
method: "POST",
success: onComplete,
params: "name="+escape("沙鋒") //進行編碼
});
}
function onComplete(obj){
alert(unescape(obj.responseText)); //進行轉碼
}
</script>
</head>
<body>
<input type="button" value="Get Data" onclick="getData()"/>
</body>
</html>


注釋:
Ajax對象接受一個對象字面量為參數,這個對象字面量中包含method,url,success,params,fail參數
method:"GET"或者"POST"
url:服務器端文件路徑
success:當請求沒有錯誤的時候,調用的回調函數,該回調函數帶一個XMLHttpRequest對象的參數
fail:當請求錯誤的時候調用
params:當使用POST方法發送請求是,params為參數字符串

到此,關于“Ajax對象包含post和get兩種異步傳輸方式實例”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女