利用Promise实现ajax
GET
function getAjax(url) { return new Promise((resolved,rejected)=>{ //创建ajax对象 let ajax = new XMLHttpRequest(); //配置参数 ajax.open(‘get‘,url,true) //发送请求 ajax.send(); //请求成功之后 ajax.onload = function () { if(this.status === 200){ console.log(ajax.responseText) resolved(ajax.responseText); }else{ rejected(); } } }) }
getAjax(url).then().catch()
POST
function postAjax(url,param) { return new Promise((resolved,rejected)=>{ //创建ajax对象 let ajax = new XMLHttpRequest(); //配置参数 ajax.open(‘post‘,true); //设置请求头,表示我传递的参数的类型 xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); //发送请求,并将数据传递过去 ajax.send(JSON.stringify(data)); //请求成功之后 ajax.onload = function () { if(this.status === 200){ console.log(ajax.responseText) resolved(ajax.responseText); }else{ rejected(); } } }) }
getAjax(url,param).then().catch()
GET \POST合并
function myAjax(type,params) { return new Promise((resolved,rejected)=>{ //创建ajax对象 let ajax; //注意,不要根据浏览器的navigator.userAgent来检测浏览器是否支持某个JavaScript特性,一是因为这个字符串本身可以伪造,二是通过IE版本判断JavaScript特性将非常复杂。 if (window.XMLHttpRequest) { ajax = new XMLHttpRequest(); } else { ajax = new ActiveXObject(‘Microsoft.XMLHTTP‘); } if(type == ‘get‘ || type == ‘‘){//get //配置参数 ajax.open(‘get‘,true) //发送请求 ajax.send(); }else if(type == ‘post‘){//post //配置参数 ajax.open(‘post‘,true); //设置请求头,表示我传递的参数的类型 xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); //发送请求,并将数据传递过去 ajax.send(JSON.stringify(data)); } //请求成功之后 request.onreadystatechange = function (){ if (request.readyState === 4){ if(this.status === 200){ console.log(ajax.responseText) resolved(ajax.responseText); }else{ rejected(); } } } }) }
getAjax(‘get‘).then().catch() getAjax(‘post‘,param).then().catch()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。