📅  最后修改于: 2023-12-03 15:42:01.081000             🧑  作者: Mango
在现代 web 应用中,我们经常需要通过 AJAX 获取数据请求并更新页面内容。AJAX(Asynchronous JavaScript and XML)是一种用于通过 JavaScript 异步发送 HTTP 请求的技术。要操作 AJAX,通常需要使用 HTTP 库。
在本文中,我们将介绍如何自定义 HTTP 库和使用 AJAX 获取请求,并使用 JavaScript 来操作响应。我们的示例将基于 jQuery AJAX 和 Axios AJAX。
jQuery AJAX 提供了许多方便易用的方法帮助我们实现 AJAX 请求。我们首先需要引入 jQuery 库:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
我们拥有了 jQuery 库之后,就可以使用 jQuery AJAX 来获取请求了。以下是一个示例:
$.ajax({
url: 'https://jsonplaceholder.typicode.com/posts/1',
method: 'GET',
success: function(data) {
console.log(data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus + ': ' + errorThrown);
}
});
这个示例发送一个 GET 请求到指定的 URL,并在成功时将响应数据输出到控制台。如果发生错误,则通过 error
回调函数输出错误信息。
Axios AJAX 是一个强大的 AJAX 库,它具有许多优秀的功能,例如 Promise API 和请求拦截器。我们可以使用以下方法来获取请求:
axios.get('https://jsonplaceholder.typicode.com/posts/1')
.then(function(response) {
console.log(response.data);
})
.catch(function(error) {
console.log(error);
});
这个示例使用 Axios 发送一个 GET 请求到指定的 URL,并在成功时将响应数据输出到控制台。如果发生错误,则通过 catch
块来输出错误信息。
虽然使用现有的 HTTP 库可以节省大量时间,但自定义 HTTP 库也很有趣。让我们首先使用 jQuery AJAX 创建自己的简单 HTTP 库:
var http = {
get: function(url, callback) {
$.ajax({
url: url,
method: 'GET',
success: function(data) {
callback(data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus + ': ' + errorThrown);
}
});
}
};
这个示例创建了一个名为 http
的对象,并添加了一个 get
方法来发送 GET 请求并获取响应数据。当响应成功时,通过 callback
函数传递数据。如果发生错误,则通过 error
回调函数输出错误信息。
我们可以使用以下代码来调用 http
对象:
http.get('https://jsonplaceholder.typicode.com/posts/1', function(data) {
console.log(data);
});
它将发起一个 GET 请求,并在成功时将响应数据输出到控制台。
使用 Axios 创建自定义 HTTP 库同样简单,只需使用以下代码:
var http = axios.create({
baseURL: 'https://jsonplaceholder.typicode.com',
timeout: 1000
});
这个示例创建一个名为 http
的 Axios 实例,并设置基础 URL 和超时时间。这些选项将作为每个请求的默认选项。
我们可以使用以下代码来发送请求:
http.get('/posts/1')
.then(function(response) {
console.log(response.data);
})
.catch(function(error) {
console.log(error);
});
这个示例调用 http
对象的 GET 方法,并在成功时将响应数据输出到控制台。
通过自定义 HTTP 库,我们可以更加自由灵活地使用 AJAX 获取请求。无论是使用 jQuery AJAX 还是 Axios AJAX,我们都可以方便地获取 AJAX 请求并操作响应数据。
而且从示例中我们还可以看到,使用外部开源库的方式是非常方便的,避免了重复劳动。