promise封装ajax请求
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Promise封装AJAX操作</title>
·
promise是es6语法,直接使用即可。
XMLHttpRequest是浏览器实现的api接口,用于向后台请求数据的。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Promise封装AJAX操作</title>
</head>
<body>
<script>
/**
* 封装一个函数 sendAJAX 发送 GET AJAX 请求
* 参数 URL
* 返回结果 Promise 对象
*/
function sendAJAX(url){
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.responseType = 'json';
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);
}
}
}
});
}
//第一个箭头函数,处理成功的返回结果(跟xhr.response一致),第二个箭头函数处理失败的结果(跟xhr.status一致)
sendAJAX('http://localhost:3000/showblog')
.then(value => {
console.log(value);
}, reason => {
console.warn(reason);
});
</script>
</body>
</html>
更多推荐


所有评论(0)