Promise封装AJAX请求

控制台一直报XMLHttpRequest is not defined错误

function sendAJAX(url){
    return new Promise((resolve,reject)=>{
        const xhr = new XMLHttpRequest();
        xhr.open('GET',url);
        xhr.send();
        xhr.onreadystatechange = function(){
        if(xhr.readyState===4) {
            if(xhr.status>=200 && xhr.status<300) {
                resolve(xhr.response);
            }else {
                reject(xhr.status);
            }
        }
    }
    })
    
}
sendAJAX('https://api.uixsj.cn/hitokoto/get?type=social').then((value)=>{ 
    console.log(value.toString());
},(reason)=>{
    console.log(reason);
})

在js脚本中运行var xhr =  new XMLHttpRequest();

出现报错: Uncaught ReferenceError: XMLHttpRequest is not defined

报错原因:xmlhttprequest不是node 的内置对象。需要单独安装

解决办法:安装xmlhttprequest,安装命令:npm install xmlhttprequest

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:用Promise封装Ajax

XMLHttpRequest不是Node 内置的,需要单独安装
安装命令:npm install xmlhttprequest

引入xhr后显示XMLHttpRequest is not a constructor详见https://blog.csdn.net/qq_52317104/article/details/120459500