1. 程式人生 > 實用技巧 >javascript實現ajax,回撥獲取相應結果

javascript實現ajax,回撥獲取相應結果

一個小小的經過:
開始寫的時候打印出來的都是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]')