首页 > 试题广场 >

请使用Promise封装Ajax操作原始的Ajax操作如下:

[问答题]
请使用Promise封装Ajax操作
原始的Ajax操作如下:
var onSuccess = function(result){}; //成功的回调
var onFail = function(error){}; //失败的回调
var req = new XMLHttpRequest();
req.open("POST", "www.baidu.com", true);
req.onload = function(){
  if(req.readyState === 4 && req.status === 200){
    onSuccess(req.response);
  } else {
    onFail(req.statusText);
  }
}
req.onerror = function(){
  onFail(Error("网络异常"));
}

const ajax = url => {
    return new Promise((resolve, reject) => {
        let req = new XMLHttpRequest();
        req.open("POST", url, true);
        req.onload = () => {
          if(req.readyState === 4 && req.status === 200){
            resolve(req.response);
          } else {
            reject(req.statusText);
          }
        }
        req.onerror = () => {
          reject(Error("网络异常"));
        }
    })
}


发表于 2020-09-30 17:58:53 回复(3)
const http = ()=>{
    return new Promise()
}
发表于 2020-11-19 09:27:13 回复(0)
return new Promise(function(resolve, reject){
   var req = new XMLHttpRequest();
   req.open("POST", "www.baidu.com", true);
    req.onload = function(){
     if(req.readyState === 4 && req.status === 200){
       resolve(req.response);
     } else {
       reject(req.statusText);
     }
   }
   req.onerror = function(){
     reject(Error("网络异常"));
   }
 });
发表于 2022-04-10 19:33:32 回复(0)
var req = newXMLHttpRequest(); req.open("POST", "www.baidu.com", true); let promise=new Promise((resolve,reject)=>{  
req.onload = function(){
  if(req.readyState === 4&& req.status === 200){
    resolve(req.response)
  } else{
    reject(req.statusText)
  }
}).then(err=>{reject("网络异常")})

发表于 2021-12-07 20:25:23 回复(0)
const request = function (method, url, isajax) {
    return new Promise((resolve, reject) => {
        let req = new XMLHttpRequest();
        req.open(method, url, isajax);
        req.onload = function(){
            if(req.readyState === 4 && req.status === 200){
                resolve(req.response);
            } else {
                reject(req.statusText);
            }
        }
        req.onerror = function(){
            reject(Error("网络异常"));
        }
    })
}
let req = request("POST", "www.baidu.com", true)
req.then(onSuccess).catch(onFail)

发表于 2020-12-17 21:40:30 回复(0)
function PromiseAjax() {
    return new Promise((resolve, reject) => {
        var req = newXMLHttpRequest();
        req.open("POST", "www.baidu.com", true);
        
        req.onload = function(){
            if(req.readyState === 4&& req.status === 200){
                resolve(req.response)
            } else{
                reject(req.statusText)
            }
      }
      req.onerror = function(){
          reject(Error("网络异常"))
      }
    })
}

PromiseAjax().then(res => {}).catch(err => {})
发表于 2020-12-03 17:30:00 回复(0)
$.ajax({
        type:"POST",
        url:"www.baidu.com",
        dataType:"json", 
        success:function(req){
           if(req.readyState === 4 && req.status === 200){
              alter("req.response")
           }else{
               alter(req.statusText)
           }
        },
        error:function(req){
           aler("发生错误");
        }
});
发表于 2020-12-01 14:43:29 回复(0)
return new Promise(function(resolve, reject){
    var req = new XMLHttpRequest();
    req.open("POST", "<a href="http://www.baidu.com" target="_blank">www.baidu.com",true);
    req.onload = function(){
        if(req.readyState === 4 && req.status ===200){
            resolve(req.response);
        }else{
            reject(req.statusText);
        }
    }
    req.onerror = function(){
        reject(Error("网络异常"));
    }
});</a>

发表于 2020-11-08 15:27:20 回复(0)

const ajax = url => {
  return new Promise((resolve,reject) => {
    var req = new XMLHttpRequest();
req.open("POST", "www.baidu.com", true);
req.onload = function(){
  if(req.readyState === 4 && req.status === 200){
    resolve(req.response);
  } else {
    reject(req.statusText);
  }
}
req.onerror = function(){
  onFail(Error("网络异常"));
}
})
}
发表于 2020-11-07 17:54:41 回复(0)
function ajax () {
    return new Promise((resolve,reject) => {
             var req = new XMLHttpRequest();
            req.open("POST", "www.baidu.com", true);
            req.onload = function(){
              if(req.readyState === 4&& req.status === 200){
                    onSuccess(req.response);
resolve(req.response)
              } else{
                    onFail(req.statusText);
                    reject(req.statusText)
              }
            }
        
            req.onerror = function(){
                    reject(Error("网络异常"))
                  onFail(Error("网络异常"));
            }


    })
   
}
发表于 2020-10-27 20:51:29 回复(0)
var onSuccess = function(result){}; //成功的回调
var onFail = function(error){}; //失败的回调

new Promise((resolve, reject) => {
    
var req = newXMLHttpRequest();
req.open("POST", "www.baidu.com", true);
req.onload = function(){
  if(req.readyState === 4&& req.status === 200){
    resolve(req.response);
  } else{
    reject(req.statusText);
  }
}
}).then((res) => {
    onSuccess(res)
}).catch((err) => {
onFail(err)
})
发表于 2020-10-09 21:48:22 回复(1)
return new Promise(function(resolve,reject){
    var req = new XMLHttoRequest();
    req.open('POST',"<a href='http://baidu.com' target='_blank'>www.baidu.com",true);
    req.onload = function(){
        if(req.readyState === 4 || req.readyState === 200){
            resolve(req.response);
        }else{
            reject(req.statusText);
        }
    }
    req.onerror = function(){
        reject(Error("网络异常"));
    }
})

发表于 2020-10-07 14:59:53 回复(0)
return new Promise(function(resolve, reject){
   var req = new XMLHttpRequest();
   req.open("POST", "http://www.baidu.com", true);
   req.onload = function(){
     if(req.readyState === 4 && req.status === 200){
       resolve(req.response);
     } else {
       reject(req.statusText);
     }
   }
   req.onerror = function(){
     reject(Error("网络异常"));
   }
 });

编辑于 2020-09-24 17:16:21 回复(0)