關于request. send()求助?
我在JavaScript? Dom 編程藝術(第二版)中看到request. send()是用在onreadystatechange函數后的,而這里的第四個視頻中老師放在了前面。
求解?個人傾向于書中的用法,不是應該在處理了onreadystatechange 函數后再發送請求嗎?
謝謝。
我在JavaScript? Dom 編程藝術(第二版)中看到request. send()是用在onreadystatechange函數后的,而這里的第四個視頻中老師放在了前面。
求解?個人傾向于書中的用法,不是應該在處理了onreadystatechange 函數后再發送請求嗎?
謝謝。
2017-10-17
舉報
2019-12-16
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){
.....
}
}
一般都是這個順序的吧。我看其他的教學視頻上說
2018-06-27
一般來說,放前放后是沒有問題的,不過我也在另一本書《高級程序設計》中看到過,說是最好將onreadystatechange事件函數放在open()和send()之前,原因是為了保證跨瀏覽器兼容。具體有什么兼容問題,書中沒說。
2017-11-13
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函數中去。這是我的個人理解,如有錯誤歡迎指出。
2017-10-24
send是異步執行的,可以放在前面,可以百度看下JavaScript的事件循環
2017-10-17
糾正問題: 是第二章第五個視頻4分鐘后。