通过Promise对象实现一个ajax
在前端开发中,使用Promise对象来封装一个基础的AJAX请求是一个常见的做法,这有助于我们更好地处理异步操作。以下是一个简单的示例,使用原生的JavaScript和Promise来创建一个AJAX函数:
function ajax(url, method = 'GET', data = null) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.open(method, url, true);
// 设置请求头,如果是POST请求的话
if (method === 'POST') {
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
}
xhr.onload = function () {
if (this.status >= 200 && this.status < 300) {
// 请求成功,解析响应内容
resolve(JSON.parse(this.responseText));
} else {
// 请求失败,返回错误信息
reject({
status: this.status,
statusText: this.statusText
});
}
};
xhr.onerror = function () {
// 网络错误等
reject({
status: this.status,
statusText: this.statusText
});
};
// 发送请求
if (method === 'POST' && data) {
xhr.send(data);
} else {
xhr.send();
}
});
}
// 使用示例:
ajax('https://api.example.com/data', 'GET')
.then(response => {
console.log('请求成功:', response);
})
.catch(error => {
console.error('请求失败:', error);
});
这个ajax函数接受三个参数:url(请求的URL),method(请求方法,默认为'GET'),和data(发送到服务器的数据,默认为null)。函数返回一个Promise对象,该对象在请求成功时解析为响应内容,在请求失败时拒绝并返回错误信息。
浙公网安备 33010602011771号