下面是一个简单的示例,演示了如何使用Promise封装Ajax请求:
function ajax(url, method, data) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open(method, url, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
resolve(JSON.parse(xhr.responseText));
} else {
reject(xhr.statusText);
}
}
};
xhr.onerror = function() {
reject(xhr.statusText);
};
xhr.send(JSON.stringify(data));
});
}
// 示例用法
ajax('example.com/api', 'POST', { name: 'John', age: 30 })
.then(function(response) {
console.log('请求成功:', response);
})
.catch(function(error) {
console.error('请求失败:', error);
});
在上面的示例中,ajax函数接收三个参数:URL、请求方法和请求数据。它返回一个Promise对象,可以使用.then()和.catch()方法来处理成功和失败的回调。
在内部,我们使用XMLHttpRequest对象来发送Ajax请求。当请求状态改变时,我们检查是否已完成,并根据状态码决定是解析响应并解析为JSON对象,还是拒绝Promise并传递状态文本作为错误信息。
请注意,此示例假设您已经包含了Promise的polyfill或使用了支持Promise的现代浏览器。
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站