❤️ 点赞关注,支持更多内容!
近期入职了一家新公司,立刻被这里的技术风格所吸引。在开始审查代码库后,我发现所有的 HTTP 请求都使用了 jQuery 的 ajax 方法。
jQuery 是一个经典且强大的 JavaScript 库,它的简洁和灵活性在早期前端开发中占据了重要位置。而其中的 $.ajax 方法更是让无数开发者轻松实现了复杂的异步请求。虽然现代前端开发中,fetch 和各种基于 Promise 的库如 Axios 正在逐渐流行,但 jQuery 的 ajax 方法依然有着不可替代的优势。
JQuery 调用 Ajax方法
$.ajax({
url: "https://example.com/api",//请求的 URL 地址。
method: "POST",// 请求的类型,常用的值有 "GET"、"POST"、"PUT"、"DELETE" 等
data: JSON.stringify({ id: 123, name: "John" }),//发送到服务器的数据
dataType: "json",//预期服务器返回的数据类型,常用值有 "json"、"xml"、"html"、"script"、"text"
contentType: "application/json; charset=UTF-8",//送到服务器的数据的内容类型
//"application/x-www-form-urlencoded; charset=UTF-8",用途: 适用于发送简单表单数据,如普通的 POST 请求。
//application/json; charset=UTF-8,用途: 常用于 RESTful API 的请求和响应,发送复杂的对象或数组数据。
//multipart/form-data,用途: 适用于包含文件上传的表单提交。在使用 FormData 对象时,通常设置 contentType 为 false,以便浏览器自动设置边界(boundary)。
//contentType: "text/plain; charset=UTF-8",用途: 适用于发送简单文本数据,不需要进行特殊编码。
//application/xml; charset=UTF-8,用途: 适用于需要发送或接收 XML 格式数据的场景。
//application/octet-stream,用途: 适用于发送非文本数据,如文件的二进制内容。
success: function(response) {
console.log("Success:", response);
},//请求成功后的回调函数。
error: function(xhr, status, error) {
console.error("Error:", error);
},//请求成功后的回调函数。
complete: function(xhr, status) {
console.log("Request completed");
},// 请求完成(无论成功或失败)后的回调函数。
timeout: 5000,
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Bearer token");
},//在发送请求之前可以修改 XMLHttpRequest 对象的函数。
headers: {
"X-Custom-Header": "value"
},//发送到服务器的自定义 HTTP 头信息。
cache: false,//将不会从浏览器缓存中加载请求信息
async: true,
processData: false,
crossDomain: true//如果你想进行跨域请求,需设置为 true
});
发送文件和其他表单数据
var formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("name", "John");
$.ajax({
url: "https://example.com/upload",
method: "POST",
data: formData,
contentType: false, // 由浏览器自动设置
processData: false, // 禁止 jQuery 处理数据
success: function(response) {
console.log("File uploaded:", response);
}
});