一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - jquery - jQuery中ajax的相關知識點匯總

jQuery中ajax的相關知識點匯總

2022-02-13 17:28三七安 jquery

這篇文章主要給大家介紹了關于jQuery中ajax相關知識點的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

學習JavaScript的同學都知道, AJAX (async javascript and
xml)翻譯叫做異步的JavaScript和XML , 在原生js中使用發送網絡請求也是一件麻煩事,每次都是那幾個步驟.

我們先來回顧一下在原生js中如何發送一個 ajax 網絡請求

經典4步曲

1.原生js的ajax網絡請求

 // IE9及以上
 // const xhr = new XMLHttpRequest()
 // IE9以下
 // const xhr = new ActiveXObject("Mricosoft.XMLHTTP")

 // 對于這個兼容寫法我們可以用一個函數來封裝
 function createXHR() {
 var req = null;
 if (window.XMLHttpRequest) {
 // 如果有這個XMLHttpRequest對象就直接使用
 req = new XMLHttpRequest();
 } else {
 // 否則就使用IE8一下的寫法
 req = new ActiveXObject("Microsoft.XMLHTTP");
 }
 return req;
 }
 // 第一步:創建ajax對象
 var xhr = createXHR(); //這樣就拿到了一個ajax對象
 // 第二步:配置網絡請求信息

 xhr.open("get", "./demo.php", true)
 // xhr.open("get/post","要發送網絡請求去哪個地址",同步還是異步默認 true 表示異步,false 表示同步)
 // 如果是get請求有參數需要拼接在地址后面,例如"./demo.php?id=2&name=sanqi"
 // 如果是post請求,參數就要放在send()里面,例如:xhr.send("id=2&name=sanqi")
 // 第三步:發送網絡請求
 xhr.send() //
 // 第四部:判斷響應狀態拿到數據
 xhr.onreadyStateChange = function () {
 // 每次 readyState 改變的時候都會觸發該事件
 // 我們就在這里判斷 readyState 的值是不是到 4
 // 并且 http 的狀態碼是不是 200 ~ 299
 if (xhr.readyState === 4 && /^2d{2|$/.test(xhr.status)) {
 // 這里表示驗證通過
 // 我們就可以獲取服務端給我們響應的內容了
 console.log(xhr.response);
 }
 }


這里補充一下readyState的5個狀態

  • readyState --> 0: 表示未初始化完成,也就是 open 方法還沒有執行
  • readyState --> 1: 表示配置信息已經完成,也就是執行完 open 之后
  • readyState --> 2: 表示 send 方法已經執行完成
  • readyState --> 3: 表示正在解析響應內容
  • readyState --> 4: 表示響應內容已經解析完畢,可以在客戶端使用了

上面就是原生的js發送一個ajax網絡請求

2.關于使用jQuery的ajax網絡請求

我們在學習jquery,就了解到,大家都在說,什么 jq 都給我們封裝好啦,這些網絡請求都不用我們去寫啦,雖說如此,但是也還是不能盲目,還是 要具體了解之后才會使用.

(1).利用jquery發送get請求

下面統一后端代碼使用文件名為: test.php 這個文件

<?php
header("content-type:text/html;charset=utf-8;");
 $id = $_REQUEST["id"];
 $name = $_REQUEST["name"];
 $arr = [
 "id" => $id,
 "name" => $name
 ];
 echo json_encode($arr);
?>

使用jquery發送get請求

  $.get("./test.php","id=999&name=三七安",function (res) { 
  //第一個參數是請求的地址
  //第二個參數是要發送給服務器的數據
  //第三個參數是成功時的回調函數,里面包含服務返回給我們的數據
  //第四個參數是我們希望拿到的數據格式:有幾種選擇:json,text,html,xml,script
  console.log(res);
  },"json")

可以看到請求是發送成功了的

jQuery中ajax的相關知識點匯總

(2) 利用jquery發送post請求

	 $.post("./test.php",{id:123,name:"post請求"},function (res) { 
	 //這里其他參數和get請求一致的
	 //注意,這里的傳輸數據我用 對象的格式來寫,也能發送請求成功,也就是說
	 //無論是get請求還是post請求,想服務端傳數據,既可以使用字符串格式也可以使用對象格式
  console.log(res);
  },"json")

這是請求成功的的頁面

jQuery中ajax的相關知識點匯總

(3)利用jquery發送綜合發送 ajax 請求

先來瀏覽一下語法

 // 使用 $.ajax 方法
 // 只接受一個參數,是一個對象,這個對象對當前的請求進行所有的配置
 $.ajax({
  url: "./ajax", // 必填,請求的地址
  type: "GET", // 選填,請求方式,默認是 GET(忽略大小寫)
  data: {}, // 選填,發送請求是攜帶的參數
  dataType: "json", // 選填,期望返回值的數據類型,默認是 string
  async: true, // 選填,是否異步,默認是 true
  success() {}, // 選填,成功的回調函數
  error() {}, // 選填,失敗的回調函數
  cache: true, // 選填,是否緩存,默認是 true
  context: div, // 選填,回調函數中的 this 指向,默認是 ajax 對象
  status: {}, // 選填,根據對應的狀態碼進行函數執行
  timeout: 1000, // 選填,超時事件
 })

好像每次都要填好多參數,但其實大部分參數都是選填的,我們只要看實際情況來填寫

在編譯器里面,直接輸入ajax也可以快捷生成部分代碼

jQuery中ajax的相關知識點匯總

發送ajax請求代碼

$.ajax({
  type: "get",
  url: "./test.php",
  data: {
   id:000,
   name:"發送$.ajax請求的演示"
  },
  dataType: "json",
  success: function (response) {
   console.log(response);
  }
  });

打開網頁就可以看到我們從后端拿回來的數據

jQuery中ajax的相關知識點匯總

下面補充幾個Ajax的全局函數,也叫鉤子函數,也就是在Ajax整個請求過程中的某一個階段執行的函數,而且是任意一個Ajax請求都會觸發.

1. ajaxStart, 任意一個請求開始的時候都會觸發這個函數

$(window).ajaxStart(function () {
 console.log("有一個請求開始了")
})

2. ajaxSend , 任意一個 請求準備send之前都會觸發這個請求.

$(window).ajaxSend(function () {
 console.log("有一個要發送出去了")
})

3.ajaxSuccess, 任意一個 請求成功的時候都會觸發這個函數.

$(window).ajaxSuccess(function () {
 console.log("有一個請求成功了")
})

4.ajaxError , 任意一個 請求失敗的時候就會觸發這個函數.

$(window).ajaxError(function () {
 console.log("有一個請求失敗了")
})

5.ajaxComplete , 任意一個 請求完成的時候就會觸發這個函數

$(window).ajaxComplete(function () {
 console.log("有一個請求完成了")
})

6.ajaxStop , 任意一個 請求結束的時候就會觸發這個函數

$(window).ajaxStop(function () {
 console.log("有一個請求結束了")
})

總結

到此這篇關于jQuery中ajax的相關知識點匯總的文章就介紹到這了,更多相關jQuery ajax知識點內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_43314255/article/details/114444344

延伸 · 閱讀

精彩推薦
  • jqueryjQuery使用hide()、toggle()函數實現相機品牌展示隱藏功能

    jQuery使用hide()、toggle()函數實現相機品牌展示隱藏功能

    這篇文章主要介紹了jQuery使用hide()、toggle()函數實現相機品牌展示隱藏功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考...

    Schieber11822022-01-11
  • jqueryjquery插件實現圖片懸浮

    jquery插件實現圖片懸浮

    這篇文章主要為大家詳細介紹了jquery插件實現圖片懸浮,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    阿飛超努力5802022-03-03
  • jqueryjQuery是用來干什么的 jquery其實就是一個js框架

    jQuery是用來干什么的 jquery其實就是一個js框架

    jQuery是一bai個簡潔而快速的JavaScript庫,可用于du簡化zhi事件處理,HTML文檔遍歷,Ajax交互和dao動畫,以更快速開發網站...

    jQuery教程網8842022-01-17
  • jqueryjQuery treeview樹形結構應用

    jQuery treeview樹形結構應用

    這篇文章主要為大家詳細介紹了jQuery treeview樹形結構應用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Lqq77s9342022-02-20
  • jqueryjQuery實現本地存儲

    jQuery實現本地存儲

    這篇文章主要為大家詳細介紹了jQuery實現本地存儲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    李大璟10682021-12-16
  • jqueryjquery實現穿梭框功能

    jquery實現穿梭框功能

    這篇文章主要為大家詳細介紹了jquery實現穿梭框功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    陳濤輝8412022-01-04
  • jqueryjQuery實現鼠標拖動圖片功能

    jQuery實現鼠標拖動圖片功能

    這篇文章主要介紹了jQuery實現鼠標拖動圖片功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以...

    lucascube5812022-02-10
  • jqueryjquery插件實現搜索歷史

    jquery插件實現搜索歷史

    這篇文章主要為大家詳細介紹了jquery插件實現搜索歷史,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    阿飛超努力8462022-03-09
主站蜘蛛池模板: 99久女女精品视频在线观看 | yy8090韩国日本三理论免费 | 我被男人下药添得好爽 | 深夜免费看 | 欧美日韩精彩视频 | 果冻传媒在线视频播放观看 | 亚洲AVAV天堂AV在线网爱情 | 欧美亚洲国产精品久久久 | 小SAO货叫大声点妓女 | 欧美国产日本高清不卡 | www视频免费看 | 成人深夜视频 | 波多野结衣两女调教 | 视频一区二区三区在线 | 美女扒开屁股 | 高肉h护士办公室play | 午夜私人影院在线观看 | 超逼网| 好紧好爽的午夜寂寞视频 | 亚洲精品电影天堂网 | 色一情一区二区三区四区 | 天天躁天天碰天天看 | 波多野结在线 | 国产在线精品一区二区高清不卡 | 99精品影院 | 久久偷拍国2017的 | 厨房play黄瓜进入 | 国产精品天天看天天爽 | 99精品国产综合久久久久 | 美女被吸乳老师羞羞漫画 | 国产在视频线精品视频 | 天天视频官网天天视频在线 | 美女扒下内裤让男人桶的图片 | 亚洲免费网站在线观看 | 丰满在线观看 | 99精品国产自产在线观看 | 欧美成人中文字幕在线看 | 我要看逼 | 男人看片网址 | 三体动漫在线观看免费完整版2022 | 国产老肥熟xxxx |