JS Ajax 封装
以下是一个简单的JavaScript函数,用于封装AJAX请求,并提供了基本的错误处理和数据类型转换功能。
function ajax(url, method, data, callback) {
// 创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
// 处理请求完成后的函数
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {
// 请求成功
var response = xhr.responseText;
try {
response = JSON.parse(response);
} catch (e) {
// 假设响应是文本
}
callback(null, response);
} else {
// 请求失败
callback(new Error("AJAX request failed"), null);
}
}
};
// 设置请求的URL、方法和数据
xhr.open(method, url, true);
if (method === "POST") {
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}
// 发送请求
xhr.send(data);
}
// 使用示例
ajax('https://api.example.com/data', 'GET', null, function(err, response) {
if (err) {
console.error(err);
} else {
console.log(response);
}
});
这个封装的ajax
函数接受四个参数:url
(请求的URL)、method
(请求的HTTP方法,如GET或POST)、data
(作为请求主体发送的数据)和callback
(请求完成时调用的函数)。它会自动处理JSON响应或者将响应文本传递给回调函数。如果请求失败,它将返回一个Error对象。
评论已关闭