説明
jQuery版本
使用原生的JavaScript串接Ajax
- 建立HTTPRequest請求 new XMLHttpRequest()
- 建立回應函式 onreadystatechange
- 確認readyState、status(HTTP狀態碼)OK
- 執行回應動作,回應的值為responseText
- 定義後端api網址與method open()
- 前端傳送資料 send()
readyState
值 | 狀態 | 說明 |
0 | UNSET | 尚未讀取 |
1 | OPENED | 讀取中 |
2 | HEADERS_RECEIVED | 已下載完畢 |
3 | LOADING | 資訊交換中 |
4 | DONE | 成功 |
status
status為200,表示成功
範例
JavaScript版
p#p
const xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
if(this.readyState==4 && this.status==200){
p.textContent=this.responseText; //API連成功的動作
}
};
xmlhttp.open("GET", "https://awiclass.monoame.com/api/command.php?type=get&name=notifydata");//API網址
xmlhttp.send();
Display
哈囉!! 這邊是你用AJAX載入的純文字公告!!
jQuery版
p#p
$.ajax({
url: "https://awiclass.monoame.com/api/command.php?type=get&name=notifydata",
success: function(res){
p.textContent=res;
}
})
Display
哈囉!! 這邊是你用AJAX載入的純文字公告!!
用ajax取得header, menu等共用HTML
#header
var headerXhr=new XMLHttpRequest();
headerXhr.open('GET', 'header.html', true);
headerXhr.send();
headerXhr.onreadystatechange=function(){
if(headerXhr.readyState==4 && headerXhr.status==200){
header.innerHTML = headerXhr.responseText;
}
};
用ajax傳送JSON
TIPS: 先把JSON轉成string格式,再傳送
var xmlhttp=new XMLHttpRequest();
xmlhttp.open('POST', 'http://9.102.60.125:5000/api/bbinqcan', true);
xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
res.textContent=xmlhttp.responseText;
}
};
xmlhttp.send(
//checkedJSON是一個JSON格式的變數
JSON.stringify(checkedJSON);
)