亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于request. send()求助?

我在JavaScript? Dom 編程藝術(第二版)中看到request. send()是用在onreadystatechange函數后的,而這里的第四個視頻中老師放在了前面。

求解?個人傾向于書中的用法,不是應該在處理了onreadystatechange 函數后再發送請求嗎?

謝謝。

正在回答

5 回答

let xhr=new XMLHttpRequest();

xhr.open('get','http://httpbin/get',true);

xhr.setRequestHeader("Content-Type","applaction/x-www-form-urlencoded");

xhr.onreadystatechange=()={

if(xhr.readyState==4&&xhr.status==200){

.....

}

}

一般都是這個順序的吧。我看其他的教學視頻上說

0 回復 有任何疑惑可以回復我~

一般來說,放前放后是沒有問題的,不過我也在另一本書《高級程序設計》中看到過,說是最好將onreadystatechange事件函數放在open()和send()之前,原因是為了保證跨瀏覽器兼容。具體有什么兼容問題,書中沒說。

0 回復 有任何疑惑可以回復我~

open()和send()是客戶端向服務器端請求階段,statu是服務器響應給客戶端的狀態碼(狀態碼有5種,200就代表服務器響應成功了)。onreadystatechange函數是沒當readystate改變時都會觸發一次,當readystate=4且statu=200時證明服務器響應成功了。readystate就是請求階段就包含五個狀態(0,1,2,3,4),而open()和send()就是在這幾個狀態之中的,然后onreadystatechange函數不用關心客戶端是否已經完成,只要readystate=4,state=200就可以用responsetext/responseXML獲取到服務器響應的數據就行了,所以open()和send()并不用放到onreadystatechange函數中去。這是我的個人理解,如有錯誤歡迎指出。

0 回復 有任何疑惑可以回復我~

send是異步執行的,可以放在前面,可以百度看下JavaScript的事件循環

0 回復 有任何疑惑可以回復我~

糾正問題: 是第二章第五個視頻4分鐘后。

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Ajax全接觸
  • 參與學習       224759    人
  • 解答問題       708    個

本課程通過一個案例,講解Ajax的相關概念原理實現方式和應用

進入課程

關于request. send()求助?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號