javascript實現ajax,回撥獲取相應結果
阿新 • • 發佈:2020-10-22
一個小小的經過:
開始寫的時候打印出來的都是undefined,但是其實已經獲取到了,列印的時候還沒獲取到而已;然後加了回撥函式來獲取,ajax的回撥地獄,不過我現在只是一個get請求;這個時候用的還是onreadystatechange,之前的測試console還沒刪除,在這個部分發現if/else執行了3次,好像沒有必要,改成了onloadned。
function Ajax(option){ var xhr = new XMLHttpRequest() xhr.open(option.method,option.action,true) xhr.onreadystatechange=()=>{ if(xhr.readyState==4 && xhr.status == 200){ return xhr.response }else{ return xhr.responseText } } xhr.onerror=()=>{ return xhr.response } xhr.send() } let option = { method:'get', action:'http://xxxx/cd/user/validEmail/[email protected]' } console.log(Ajax(option))//undefined
function Ajax(option,callback){ var xhr = new XMLHttpRequest() xhr.open(option.method,option.action,true) xhr.onloadned=()=>{ if(xhr.readyState==4 && xhr.status == 200){ return callback(xhr.response) }else{ return callback(xhr.responseText) } } xhr.onerror=()=>{ return callback(xhr.responseText) } xhr.send() } function checkEmail(email){ let option = { method:'get', action:'http://xxxx/cd/user/validEmail/'+email } Ajax(option,doCheck) function doCheck(res){ console.log(JSON.parse(res)) } } checkEmail('[email protected]')