0Pricing
jQuery Academy · 课时

高效配置 AJAX 请求

探索 .ajax() 的全面选项,包括数据类型、请求头、缓存和超时设置,从而针对不同场景微调异步请求。

高效配置 AJAX 请求 是 CoddyKit 上的免费 jQuery Academy 课时。 这是第 1 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 jQuery Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 jQuery Academy 课程共包含 3 节课。

释放 .ajax() 的强大功能

jQuery 的 $.ajax() 方法是发出 HTTP 请求并实现完全控制的首选工具。与 $.get() 或 $.post() 等更简单的方法不同,$.ajax() 允许您对请求的各个方面进行精细调整。

本课将介绍它的全面选项,包括设置数据类型、管理缓存和超时,从而构建健壮且高效的异步应用。

基础 .ajax() 结构

从本质上说,$.ajax() 接受一个由键值对组成的对象,用于表示配置选项。最基本的请求只需要一个 url。

下面是从 API 获取数据的一种方式:

$.ajax({
  url: "https://jsonplaceholder.typicode.com/posts/1"
}).done(function(data) {
  console.log("Fetched data:", data.title);
});

URL 与方法(type)

url 选项指定请求的端点。type 选项(较新版本的 jQuery 中也可以使用 method)定义 HTTP 方法,例如 GET、POST、PUT 或 DELETE。

  • url:请求的目标 URL。
  • type:HTTP 方法(例如“GET”和“POST”)。
$.ajax({
  url: "/api/users",
  type: "POST"
});

使用 `data` 发送数据

使用 data 选项随请求发送信息。对于 GET 请求,数据会作为查询参数附加到 URL;对于 POST 请求,数据会发送到请求正文中。

您可以传入一个普通对象,jQuery 会为您将其序列化。

$.ajax({
  url: "/api/save-item",
  type: "POST",
  data: {
    id: 123,
    name: "New Gadget"
  }
});

预期响应:`dataType`

dataType 选项告诉 jQuery 您希望从服务器获得哪种数据(例如 "json"、"xml"、"html"、"text")。这有助于 jQuery 正确解析响应。

如果未指定,jQuery 会尝试根据响应的 MIME 类型推断数据类型。

$.ajax({
  url: "/api/products",
  dataType: "json"
});

自定义标头:`headers`

headers 选项允许您为请求设置自定义 HTTP 标头。这对于身份验证(例如发送 API 密钥)或指定内容类型等任务至关重要。

请传入一个对象,其中键是标头名称,值是标头内容。

$.ajax({
  url: "/api/secure-data",
  headers: {
    "Authorization": "Bearer your_token",
    "X-Requested-With": "XMLHttpRequest"
  }
});

控制缓存:`cache`

浏览器通常会缓存 GET 请求,以加快后续加载速度。缓存很有用,但有时您需要每次都获取最新数据。

将 cache: false 设置为禁止浏览器缓存响应,确保请求始终从服务器获取最新信息。

$.ajax({
  url: "/api/dynamic-content",
  cache: false
});

请求限制:`timeout`

运行时间过长的请求会降低用户体验。timeout 选项允许您指定请求完成所需的最长时间(以毫秒为单位)。

如果请求未能在规定时间内完成,就会被中止,并触发 .fail() 回调。

$.ajax({
  url: "/api/slow-report",
  timeout: 8000 // 8 seconds
});

实战:高级 AJAX 配置

让我们看看一个综合示例,其中组合使用了多个 $.ajax() 选项。此请求会获取一个待办事项,指定预期的数据格式为 JSON,添加自定义标头,禁用缓存,并设置超时。

请尝试运行它,看看输出段落如何更新!

<!DOCTYPE html>
<html>
<head>
  <title>AJAX Config Demo</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
  <h3>Check Console & Output:</h3>
  <p id="output">Fetching data...</p>
  <script>
    $(document).ready(function() {
      $.ajax({
        url: "https://jsonplaceholder.typicode.com/todos/1",
        type: "GET",
        dataType: "json",
        headers: {
          "X-App-ID": "CoddyKit-Demo"
        },
        cache: false,
        timeout: 7000 // 7 seconds
      })
      .done(function(data) {
        $("#output").html(
          "<b>Todo fetched!</b><br>ID: " + data.id + 
          "<br>Title: " + data.title
        );
        console.log("Success:", data);
      })
      .fail(function(jqXHR, textStatus, errorThrown) {
        $("#output").html(
          "<b>Request failed!</b><br>Status: " + textStatus + 
          "<br>Error: " + errorThrown
        );
        console.error("Error:", textStatus, errorThrown);
      })
      .always(function() {
        console.log("Request completed.");
      });
    });
  </script>
</body>
</html>

AJAX 配置检查

假设您正在构建一个功能,用于向 /api/comments 提交新的用户评论。该请求必须使用 POST 方法,包含 commentText 和 userId,并且期望返回一个 JSON 对象。此外,为确保评论始终是最新的,您还希望禁止浏览器缓存。

对于这个具体场景,以下哪些 $.ajax() 选项是必需的?

回顾:掌握 AJAX 配置

您已经掌握了配置 jQuery $.ajax() 方法的技巧!

  • 您学会了指定 url 和 HTTP type。
  • 学会了使用 data 选项发送数据。
  • 学会了使用 dataType 定义预期的响应格式。
  • 学会了添加自定义 HTTP headers,以满足高级使用场景。
  • 学会了使用 cache 控制浏览器缓存。
  • 学会了使用 timeout 为缓慢请求设置限制。

这些强大的选项让您能够在 Web 应用中构建高度定制化且可靠的异步交互。

常见问题解答

「高效配置 AJAX 请求」课时是免费的吗?

是的 — 「高效配置 AJAX 请求」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 jQuery Academy 课程的其余内容,请升级到 CoddyKit PRO。 jQuery Academy 课程共包含 3 节课。

「高效配置 AJAX 请求」这节课中我会学到什么?

探索 .ajax() 的全面选项,包括数据类型、请求头、缓存和超时设置,从而针对不同场景微调异步请求。 你通过在浏览器中直接运行的动手代码来练习 jQuery Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 jQuery Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 jQuery Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 3 节。

「高效配置 AJAX 请求」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 jQuery Academy 课中编写并运行代码吗?

能。每节 jQuery Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 高效配置 AJAX 请求
  2. 处理 AJAX 错误与成功响应
  3. 跨域 AJAX(CORS/JSONP)
← 返回 jQuery Academy