介紹一下jQuery的AJAX異步請求

目錄

一、核心方法:$.ajax()

二、簡化方法(常用場景)

1.?$.get():快速發送 GET 請求(獲取數據)

2.?$.post():快速發送 POST 請求(提交數據)

3.?$.getJSON():專門獲取 JSON 數據

三、關鍵概念解析

四、實戰案例:加載并顯示數據

五、注意事項


jQuery 的 AJAX(Asynchronous JavaScript and XML)是一套簡化異步網絡請求的 API,它封裝了原生 JavaScript 的?XMLHttpRequest,讓開發者能更輕松地實現頁面與服務器的無刷新數據交互(比如加載數據、提交表單、獲取動態內容等)。

相比原生 JS,jQuery 的 AJAX 語法更簡潔,無需處理復雜的兼容性問題,是前端開發中與后端通信的常用工具。

一、核心方法:$.ajax()

$.ajax()?是 jQuery AJAX 的基礎方法,支持幾乎所有 AJAX 配置,語法如下:

javascript

$.ajax({url: "請求地址",        // 必需,后端接口地址(如 "/api/data" 或 "data.json")type: "GET",           // 可選,請求方式(GET/POST/PUT/DELETE 等),默認 GETdata: {                // 可選,發送到服務器的數據(對象形式)username: "張三",age: 20},dataType: "json",      // 可選,預期服務器返回的數據類型(json/text/html/xml等)timeout: 5000,         // 可選,請求超時時間(毫秒),超過則觸發錯誤beforeSend: function(xhr) {// 可選,發送請求前執行(如添加請求頭、顯示加載動畫)console.log("準備發送請求...");},success: function(response) {// 必需,請求成功時執行(response 是服務器返回的數據)console.log("請求成功:", response);},error: function(xhr, status, error) {// 可選,請求失敗時執行(如網絡錯誤、服務器錯誤)console.log("請求失敗:", status, error);},complete: function(xhr, status) {// 可選,請求完成后執行(無論成功或失敗,如隱藏加載動畫)console.log("請求結束");}
});

二、簡化方法(常用場景)

為了簡化常見操作,jQuery 提供了幾個快捷方法:

1.?$.get():快速發送 GET 請求(獲取數據)

適用于從服務器獲取數據(如加載列表、詳情等),語法:

javascript

// 語法:$.get(請求地址, [發送的數據], 成功回調函數, [預期數據類型])
$.get("https://api.example.com/users", { page: 1 }, function(data) {// 成功獲取數據后執行console.log("用戶列表:", data);
}, "json"); // 預期返回 JSON 格式
2.?$.post():快速發送 POST 請求(提交數據)

適用于向服務器提交數據(如表單提交、注冊信息等),語法:

javascript

// 語法:$.post(請求地址, [發送的數據], 成功回調函數, [預期數據類型])
$.post("/api/register", {username: "小明",password: "123456"
}, function(response) {console.log("注冊結果:", response);
}, "json");
3.?$.getJSON():專門獲取 JSON 數據

簡化版的?$.get(),自動指定?dataType: "json",適合加載 JSON 格式數據:

javascript

// 加載本地 JSON 文件(模擬后端數據)
$.getJSON("data/users.json", function(users) {// 直接使用 JSON 數據(無需解析)users.forEach(user => {console.log(user.name);});
});

三、關鍵概念解析

  1. “異步” 的含義
    發送請求后,頁面不會卡住等待服務器響應,而是繼續執行其他代碼,直到服務器返回數據后,再通過?success?回調處理結果。這避免了頁面刷新或卡頓,提升用戶體驗。

  2. 數據傳遞格式

    • 發送數據:data?參數支持對象(自動轉為?key=value?格式)或字符串(如?"name=張三&age=20")。
    • 接收數據:常用?JSON?格式(輕量、易解析),dataType: "json"?會自動將返回的字符串轉為 JS 對象。
  3. 跨域問題
    默認情況下,AJAX 只能請求同域名下的接口(瀏覽器安全限制)。若需請求其他域名,需后端配置?CORS(跨域資源共享)?允許跨域,否則會觸發錯誤。

四、實戰案例:加載并顯示數據

假設后端提供一個獲取文章列表的接口?"/api/articles",返回 JSON 數據:

json

{"success": true,"data": [{ "id": 1, "title": "jQuery 入門" },{ "id": 2, "title": "AJAX 詳解" }]
}

用 jQuery 加載并顯示到頁面:

html

預覽

<ul id="articleList"></ul>
<button id="loadBtn">加載文章</button><script>$("#loadBtn").click(function() {// 點擊按鈕后發送請求$.get("/api/articles", function(res) {if (res.success) {// 清空列表$("#articleList").empty();// 遍歷數據,添加到頁面res.data.forEach(article => {$("#articleList").append(`<li>${article.title}</li>`);});} else {alert("加載失敗");}}).error(function() {alert("網絡錯誤,請重試");});});
</script>

五、注意事項

  • 避免濫用同步請求$.ajax()?中設置?async: false?可開啟同步請求,但會阻塞頁面,影響體驗,不推薦使用。
  • 處理加載狀態:在?beforeSend?中顯示 “加載中” 提示,complete?中隱藏,提升用戶體驗。
  • 數據驗證:服務器返回的數據需先驗證(如?res.success),再進行后續處理,避免報錯。

通過 jQuery AJAX,你可以輕松實現動態加載內容、表單無刷新提交等功能,是構建現代交互式網頁的核心技術之一。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93123.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93123.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93123.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Win10系統Ruby+Devkit3.4.5-1安裝

Win10系統RubyDevkit3.4.5-1安裝安裝步驟軟件工具安裝Ruby安裝gem mysql2處理libmysql.dll驗證mysql2安裝步驟 軟件工具 mysql-connector-c-6.1.11-winx64.zip rubyinstaller-devkit-3.4.5-1-x64.exe 安裝Ruby 執行rubyinstaller-devkit-3.4.5-1-x64.exe&#xff0c;期間可…

社交工程:洞穿人心防線的無形之矛

在網絡安全領域&#xff0c;一道無形的裂痕正在迅速蔓延。它不是復雜的零日漏洞&#xff0c;也不是精妙的惡意代碼&#xff0c;而是利用人性弱點進行攻擊的古老技藝——社交工程。當全球網絡安全支出突破千億美元大關&#xff0c;防火墻筑得越來越高&#xff0c;加密算法越來越…

Go 并發控制利器 ants 使用文檔

https://github.com/panjf2000/ants1.1 什么是 ants ants 是一個高性能的 Go 語言 goroutine 池&#xff0c;它能復用已完成任務的 goroutine&#xff0c;避免頻繁創建和銷毀 goroutine&#xff0c;節省 CPU 與內存開銷&#xff0c;并且能限制并發數量防止資源被耗盡。 1.2 安裝…

Day57--圖論--53. 尋寶(卡碼網)

Day57–圖論–53. 尋寶&#xff08;卡碼網&#xff09; 今天學習&#xff1a;最小生成樹。有兩種算法&#xff08;Prim和Kruskal&#xff09;和一道例題。 prim 算法是維護節點的集合&#xff0c;而 Kruskal 是維護邊的集合。 最小生成樹&#xff1a;所有節點的最小連通子圖&am…

解決海洋探測數據同步網絡問題的新思路——基于智能組網技術的探索

隨著海洋探測技術的不斷發展&#xff0c;數據同步網絡的穩定性和低延遲需求變得愈發重要。海洋探測數據來自多個分布式采集點&#xff0c;這些點需要高效的組網方式來實現實時數據傳輸。然而&#xff0c;由于海洋環境的特殊性&#xff08;如復雜的網絡拓撲、高濕度和極端溫度&a…

設計模式筆記_行為型_責任鏈模式

1. 責任鏈模式介紹責任鏈模式&#xff08;Chain of Responsibility&#xff09;是一種行為設計模式&#xff0c;它允許將多個處理器&#xff08;處理對象&#xff09;連接成一條鏈&#xff0c;并沿著這條鏈傳遞請求&#xff0c;直到有一個處理器處理它為止。職責鏈模式的主要目…

pygame的幀處理中,涉及鍵盤的有`pg.event.get()`與`pg.key.get_pressed()` ,二者有什么區別與聯系?

一、pg.event.get() 返回的是一組事件 pg.event.get() 返回的是一組事件&#xff08;一個包含多個事件對象的列表&#xff09;。這是因為在游戲的“一幀”時間內&#xff08;通常1/60秒左右&#xff09;&#xff0c;用戶可能會觸發多個事件&#xff08;比如同時按下多個鍵、快速…

TF - IDF算法面試與工作常見問題全解析

在自然語言處理領域&#xff0c;TF - IDF算法是一個基礎且重要的概念。無論是在求職面試還是在實際工作中&#xff0c;都經常會遇到與TF - IDF相關的問題。以下是一些常見的問題及其詳細解答&#xff1a; 一、基本概念類問題 1. 什么是TF - IDF算法&#xff1f; TF - IDF&#…

Transformer網絡結構解析

博主會經常分享自己在人工智能階段的學習筆記&#xff0c;歡迎大家訪問我滴個人博客&#xff01;&#xff08;都不白來&#xff01;&#xff09; 小牛壯士 - 個人博客https://kukudelin.top/ 前言 Transformer 廣泛應用于自然語言處理&#xff08;如機器翻譯、文本生成&…

gateway進行接口日志打印

打印需求&#xff1a;對所有的接口打印&#xff1a;請求方式&#xff0c;請求路徑&#xff0c;請求參數&#xff0c;用戶id&#xff0c;訪問IP&#xff0c;訪問時間對增刪改操作的接口打印&#xff1a;接口響應打印方案&#xff1a;給GET設置一個白名單&#xff08;因為get請求…

MATLAB實現圖像增強(直方圖均衡化)

直方圖均衡化是一種常用的圖像增強技術&#xff0c;它通過重新分布圖像的像素強度值來增強圖像的對比度。以下是MATLAB中實現直方圖均衡化的詳細方法。%% 直方圖均衡變換 clc;close all;clear all;warning off;%清除變量 rand(seed, 100); randn(seed, 100); format long g;%% …

java15學習筆記-密封類

360:Sealed Classes (Preview) 封閉類&#xff08;預覽&#xff09; 總結 使用密封類和接口增強Java編程語言。密封類和接口限制了哪些其他類或接口可以擴展或實現它們。這是JDK 15中的預覽語言功能。 目標 允許類或接口的作者控制負責實現它的代碼。 提供一種比訪問…

西門子PLC通過穩聯技術EtherCAT轉Profinet網關連接baumuller伺服器的配置案例

西門子PLC用穩聯技術的EtherCAT轉Profinet網關&#xff0c;連上baumuller伺服器的配置例子本案例實現西門子S71200 PLC通過EtherCAT轉Profinet網關對baumuller&#xff08;Baumller&#xff09;伺服器的實時控制&#xff0c;適用于高精度運動控制場景&#xff08;如精密機床、自…

Ansible 詳細筆記

Ansible 詳細筆記 一、Ansible 基礎概述 1.1 定義與定位 Ansible 是由 Red Hat 主導開發的開源自動化運維工具&#xff0c;基于 Python 語言實現&#xff0c;專注于簡化 IT 基礎設施的配置管理、應用部署、任務編排等操作。它采用無代理架構&#xff0c;通過 SSH 協議與被控節點…

【Java 后端】Spring Boot 集成 JPA 全攻略

Spring Boot 集成 JPA 全攻略 一、前言 在 Java Web 開發中&#xff0c;數據庫訪問是繞不開的話題。 傳統方式使用 JDBC 編寫 SQL&#xff0c;維護困難、可讀性差。后來有了 MyBatis 這種半自動 ORM 框架&#xff0c;再到 JPA&#xff08;Java Persistence API&#xff09;這…

pytorch學習筆記-加載現有的網絡模型(VGG16)、增加/修改其中的網絡層(修改為10分類)

寫在前面&#xff1a;有些地方和視頻里不一樣的是因為官方文檔更新了&#xff0c;一些參數用法不一樣也很正常&#xff0c;包括我現在的也是我這個時間節點最新的&#xff0c;誰知道過段時間會不會更新呢 建議大家不要一味看視頻/博客&#xff0c;多看看官方文檔才是正道&#…

RocketMQ 4.9.3源碼解讀-NameServer組件啟動流程分析

作者源碼閱讀筆記主要采用金山云文檔記錄的,所有的交互圖和代碼閱讀筆記都是記錄在云文檔里面,本平臺的文檔編輯實在不方便,會導致我梳理的交互圖和文檔失去原來的格式,所以整理在文檔里面,供大家閱讀交流 【金山文檔 | WPS云文檔】 namesrv 啟動流程 相關重要類介紹說明…

《嵌入式 C 語言編碼規范與工程實踐個人筆記》參考華為C語言規范標準

《嵌入式 C 語言編碼規范與工程實踐個人筆記》參考華為C語言規范標準 前言 在電子系統開發領域&#xff0c;C 語言作為底層開發的核心語言&#xff0c;其代碼質量直接關系到系統的穩定性、可維護性和擴展性。良好的編碼規范不僅是團隊協作的基礎&#xff0c;更是降低生命周期成…

純半精度模型和全精度模型的耗時分別為248微秒和1400微秒。混合精度模型371微秒比原始模型快大約四倍!

不過有一點需要注意:在上下文管理器內部生成的任何輸出,必然會采用該上下文管理器的數據類型。因此,之后我們必須將這些輸出轉換回FP32(例如,使用float()函數)。 with torch.autocast(device_type="cuda", dtype=torch.float16): res16 = mixed32(torch.randn…

一款開源的遠程桌面軟件,旨在為用戶提供流暢的游戲體驗,支持 2K 分辨率、60 FPS,延遲僅為 40ms。

軟件介紹 CloudPlayPlus&#xff08;云玩加&#xff09;是一款令人驚艷的開源遠程桌面、串流軟件&#xff0c;云玩加由個人開發者開發者&#xff0c;具有四大特征&#xff1a;開源、免費、低延遲、安全。 軟件使用 客戶端支持多個平臺&#xff0c;包括 Windows、Mac OS、安卓…