第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Ajax里的onreadystatechange的作用是什么

Ajax里的onreadystatechange的作用是什么

暮色呼如 2019-05-31 07:02:12
Ajax里的onreadystatechange的作用是什么
查看完整描述

2 回答

?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊

發(fā)送一個(gè)請(qǐng)求后,客戶端無(wú)法確定什么時(shí)候會(huì)完成這個(gè)請(qǐng)求,所以需要用事件機(jī)制來(lái)捕獲請(qǐng)求的狀態(tài),XMLHttpRequest對(duì)象提供了onreadyStateChange事件實(shí)現(xiàn)這一功能。這類(lèi)似于回調(diào)函數(shù)的做法。
onreadyStateChange事件可指定一個(gè)事件處理函數(shù)來(lái)處理XMLHttpRequest對(duì)象的執(zhí)行結(jié)果,如:
ajaxObj=createAjaxObject();
var url="/MyTodoes/FetchText?id="+id;
ajaxObj.open("Get",url,true);
ajaxObj.onreadyStateChange=changeTabCallBack;
ajaxObj.send(null);

onreadyStateChange事件是在readyState屬性發(fā)生改變時(shí)觸發(fā)的,readyState的值表示了當(dāng)前請(qǐng)求的狀態(tài),在事件處理程序中可以根據(jù)這個(gè)值來(lái)進(jìn)行不同的處理。 readyState有五種可取值0:尚未初始化,1:正在加載,2:加載完畢,3:正在處理;4:處理完畢。一旦readyState屬性的值變成了4,就可以從服務(wù)器返回的響應(yīng)數(shù)據(jù)進(jìn)行訪問(wèn)了。
通常在事件中判斷readyState的值是在請(qǐng)求完畢時(shí)才做處理,如:
function changeTabCallBack(){
if(ajaxObj.readyState==4){
// 下一步驗(yàn)證
}
}

Status存儲(chǔ)了服務(wù)器端返回的Http請(qǐng)求響應(yīng)代碼,它表示請(qǐng)求的處理結(jié)果,常見(jiàn)響應(yīng)代碼的含義如右。
在Ajax開(kāi)發(fā)中,最常用就是200這個(gè)響應(yīng)碼,代碼如下:
function changeTabCallBack(){
if(ajaxObj.readyState==4){
if(ajaxObj.status==200){
// 服務(wù)端返回了正確數(shù)據(jù),開(kāi)始響應(yīng)處理
}
}
}
Http狀態(tài)碼 含義
200 請(qǐng)求成功
202 請(qǐng)求被接受但處理未完成
400 錯(cuò)誤請(qǐng)求
404 請(qǐng)求資源未找到
500 內(nèi)部服務(wù)器錯(cuò)誤





查看完整回答
1 反對(duì) 回復(fù) 2019-06-01
?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊


具體解決方法是,將你的代碼中下面的這一段
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
msg=xmlhttp.responseText;
}
}
拆分開(kāi),也就是=后面的寫(xiě)成一個(gè)單獨(dú)的function。比如:
function connect() {
if(xmlhttp.readyState==4 && xmlhttp.status==200){
msg=xmlhttp.responseText;
}
}
然后將原先的代碼調(diào)用修改為xmlhttp.onreadystatechange=connect;
這個(gè)地方千萬(wàn)不能寫(xiě)成xmlhttp.onreadystatechange=connect();
也就是connect后面千萬(wàn)別加(),之后readyState的狀態(tài)就會(huì)發(fā)生改變了。


查看完整回答
反對(duì) 回復(fù) 2019-06-01
  • 2 回答
  • 0 關(guān)注
  • 612 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)