📅  最后修改于: 2023-12-03 15:06:48.137000             🧑  作者: Mango
jQuery 是一个非常流行的 JavaScript 库,提供了许多实用的工具来简化 JavaScript 开发。其中,jQuery 的 ajax 功能是我们平时使用最多的一种功能之一,可以帮助我们轻松地实现异步数据交互。
jQuery 的 ajax 调用非常简单,具体的语法形式如下:
$.ajax({
url: 'ajax/test.html', // 请求地址
type: 'GET', // 请求类型,可以是 GET、POST、PUT、DELETE 等
data: { key1: 'value1', key2: 'value2' }, // 发送的数据,可以是对象、字符串、数组等格式
dataType: 'html', // 返回的数据类型,可以是 text、html、json、jsonp、xml 等
success: function (response) { // 请求成功后的回调函数
console.log(response);
},
error: function (xhr, status, error) { // 请求失败后的回调函数
console.error(error);
},
complete: function () { // 请求完成后的回调函数,无论请求成功或失败都会执行
console.log('complete');
}
});
以上代码中,url
表示要请求的地址,type
表示请求类型,data
表示要发送的数据,dataType
表示返回的数据类型,success
表示请求成功后的回调函数,error
表示请求失败后的回调函数,complete
表示请求完成后的回调函数。
除了上述基本语法,jQuery ajax 还提供了许多常用的参数,我们可以根据需要选择使用。
async 表示异步模式,如果设置为 false,则会变成同步模式,默认值为 true。
$.ajax({
url: 'ajax/test.html',
async: false,
success: function (response) {
console.log(response);
}
});
cache 表示是否从缓存中读取数据,默认为 true,如果设置为 false,则会强制从服务器重新加载数据。
$.ajax({
url: 'ajax/test.html',
cache: false,
success: function (response) {
console.log(response);
}
});
timeout 表示超时时间,单位为毫秒,默认为 0,表示不超时。
$.ajax({
url: 'ajax/test.html',
timeout: 5000, // 超时时间为 5 秒
success: function (response) {
console.log(response);
},
error: function (xhr, status, error) {
console.error(error);
}
});
beforeSend 表示请求发送前的回调函数,可以在此处添加请求头等信息。
$.ajax({
url: 'ajax/test.html',
beforeSend: function (xhr) { // xhr 为 XMLHttpRequest 对象
xhr.setRequestHeader('Authorization', 'Bearer ' + localStorage.getItem('token'));
},
success: function (response) {
console.log(response);
},
error: function (xhr, status, error) {
console.error(error);
}
});
headers 表示要发送的自定义请求头。
$.ajax({
url: 'ajax/test.html',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function (response) {
console.log(response);
},
error: function (xhr, status, error) {
console.error(error);
}
});
dataFilter 表示对返回数据进行过滤的函数。
$.ajax({
url: 'ajax/test.html',
dataType: 'text',
dataFilter: function (data, dataType) {
if (dataType === 'json') {
var obj = JSON.parse(data);
return obj;
} else {
return data;
}
},
success: function (response) {
console.log(response);
},
error: function (xhr, status, error) {
console.error(error);
}
});
下面是一个使用 jQuery ajax 进行数据获取和展示的简单例子:
<!DOCTYPE html>
<html>
<head>
<title>使用 jQuery 进行 ajax 调用</title>
</head>
<body>
<div id="result"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
$.ajax({
url: 'https://api.github.com/users/github',
success: function (data) {
var html = '<h1>' + data.login + '</h1>' +
'<p>' + data.bio + '</p>' +
'<img src="' + data.avatar_url + '">';
$('#result').html(html);
},
error: function (xhr, status, error) {
console.error(error);
}
});
</script>
</body>
</html>
以上代码中,我们使用了 jQuery 的 ajax 功能来获取 GitHub 上 github
用户的信息,并将信息展示在网页上。
jQuery ajax 是一种非常实用的数据交互方式,可以帮助我们轻松地实现异步请求和响应。除了基本语法外,jQuery ajax 还提供了许多常用参数,可以根据需要选择使用。在实际开发中,我们应该根据具体的业务需求来选择合适的请求方式,并且需要注意安全性和效率问题。