AJAX(JavaScript版本)

目錄

一.AJAX簡介

二.XMLHttpRequests對象

2.1XMLHttpRequests對象簡介

2.2創建XMLHttpRequests對象

2.3定義回調函數

2.4發送請求

?2.5XMLHttpRequests對象方法介紹

2.6XMLHttpRequests對象屬性

三.向服務器發送請求

3.1發送請求

3.2使用GET還是POST

3.3使用GET來發送信息

3.4POST請求

一.AJAX簡介

服務器向瀏覽器傳輸數據時,瀏覽器需要跳轉到一個新的“URL”或者“重新渲染網頁”,才可以接收來自服務器的數據,這對于現代用戶來說是不友好的,因為觀感極差

那么有沒有一種辦法可以使瀏覽器接收服務器的數據,并且不更新網頁只是動態的更新網頁部分數據呢?

隨著這個問題“AJAX”應運而生,使用“AJAX”可以做到以下事情:

  • 不刷新頁面更新網頁
  • 在頁面加載后從服務器請求數據
  • 在頁面加載后從服務器接收數據
  • 在后臺向服務器發送數據

二.XMLHttpRequests對象

2.1XMLHttpRequests對象簡介

XMLHttpRequests對象AJAX的基石

使用XMLHttpRequests對象允許前端后端發送一個數據請求用來獲得數據

這個數據請求的過程可以分為下面"四大步”:

  • 創建XMLHttpRequests對象
  • 定義回調函數
  • 打開XMHttpRequests對象
  • 向服務器發送請求

2.2創建XMLHttpRequests對象

創建XMLHttpRequests對象的語法:

var myXMLR = new XMLHttpRequests();

2.3定義回調函數

回調函數是作為參數傳遞給另一個函數的函數

定義回調函數我們可以使用XMLHttpRequests對象提供的“onload()”函數,該函數用來指定當請求響應后應該執行的函數

xhttp.onload = function(){

? ? ? ? //當相應準備就緒時要做什么

}

2.4發送請求

向服務器發送請求,我們可以使用“open()”方法來打開XMLHttpRequests對象,再使用“send()”方法來發送請求

xhttp.open("open","ajax_info.txt");

xhttp.send();

?2.5XMLHttpRequests對象方法介紹

方法描述
new XMLHttpRequests()創建新的XMLHttpRequests對象
abort()取消當前請求
getAllResponseHeaders()返回頭部信息
getReponseHeader()返回特定的頭部信息
open(method,url,async,user,psw)

規定請求

  • method:請求類型GET或POST
  • url:文件位置
  • async:true(異步)或false(同步)
  • user:可選的用戶名
  • psw:可選的密碼
send()向服務器發送請求,用于GET請求
send(string)向服務器發送請求,用于POST請求
setRequestHeader()將標簽/值對添加到要發送的標頭

2.6XMLHttpRequests對象屬性

屬性描述
onload定義接收到(加載)請求時要調用的函數
onreadystatechange

定義當readyState屬性發生變化時調用的函數

readyState

保存XMLHttpRequests的狀態

  • 0:請求未初始化
  • 1:服務器連接已建立
  • 2:請求已收到
  • 3:正在處理請求
  • 4:請求已完成響應且已就緒
responseText

以字符串形式返回響應數據

responseXML以XML數據返回響應數據
status

返回請求的狀態號

  • 200:"ok"
  • 403:"Forbidden"
  • 404:"Not Found"
statusText返回狀態文本,比如("OK"、"Not Found"等)

ps:“當readyState為4且status為200時,響應就緒

三.向服務器發送請求

3.1發送請求

在上面我們已經提到過,可以使用“open()”和“send()”方法搭配向服務器發送請求

open(method,url,async,user,psw)

規定請求

  • method:請求類型GET或POST
  • url:文件位置
  • async:true(異步)或false(同步)
  • user:可選的用戶名
  • psw:可選的密碼
send()向服務器發送請求,用于GET請求
send(string)向服務器發送請求,用于POST請求

3.2使用GET還是POST

在大多數情況下,GETPOST更簡單更快

但在以下情況請考慮使用POST

  • 緩存文件不是選項(更新服務器上的文件或數據庫)
  • 向服務器發送大量數據(POST無大小限制)
  • 發送用戶輸入(可包含未知字符),POST比GET更強大更安全

3.3使用GET來發送信息

如果想要使用GET來發送信息,可以在URL中構造信息

xhttp.open("GET","demo.asp?fname=Bill&&name=Gates",true);
xhttp.send();

3.4POST請求

一條簡單的POST請求:

xhttp.open("POST","demo_post.asp",true);

xhttp.send();

如果需要像HTML表單那樣POST數據,請通過setRequestHeader()添加一個HTTP頭部,并在send()方法中定義要發送的數據

例如:

xhttp.open("POST","ceshi.asp",true);
xhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhttp.send("fname=Bill&&name=Gates");

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

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

相關文章

前端nvm、nodejs、npm、cnpm、yarn安裝教程(超詳細圖文,含卸載舊的nodejs,安裝及環境變量配置)

最近換了新電腦,一開始在網上找了一個教程讓下載nvm-noinstall.zip 壓縮包解壓使用,踩坑了,過程復雜最后報錯無法用。 后來搜到下文教程,直接使用nvm。exe進行安裝,方便快捷。下面這個文章寫的很詳細,從如何…

谷歌快速收錄怎么做?

快速收錄顧名思義,就是讓新的的網頁內容能夠迅速被谷歌搜索引擎抓取、索引和顯示在搜索結果中,這對于做seo來說非常重要,因為它有助于新發布的內容盡快出現在谷歌的搜索結果中,從而增加網站的流量 想做谷歌快速收錄谷歌推薦了幾種…

12. Web開發:介紹Web開發的基本概念,Servlet和JSP的使用,MVC設計模式的應用等。

Web開發的輕松入門之旅 想象一下,Web開發就像是搭建一個在線的小家,你既是設計師,又是建筑師,還是管家。我們一步步來探索這個過程,保證簡單易懂,就像搭積木一樣有趣! Web開發基礎認知 Web開…

mybatis-plus 開發中常用的

1、查詢 // 假設有一個 QueryWrapper 對象&#xff0c;設置查詢條件為 age > 25 QueryWrapper<User> queryWrapper new QueryWrapper<>(); queryWrapper.gt("age", 25); List<User> users userService.list(queryWrapper); // 調用 list 方法…

【MySQL02】【 InnoDB 記錄存儲結構】

文章目錄 一、前言二、InnoDB 行格式1. COMPACT 行格式1.1 記錄的額外信息1.2 記錄的真實數據1.3 綜上 2. REDUNDANT 行格式2.1 字段長度偏移列表2.2 記錄頭信息 3. DYNAMIC 行格式和 COMPPESED 行格式 三、InnoDB 數據頁結構1. File Header (文件頭部)2. Page Header (頁面頭部…

(一)Go語言使用:常用API

Math import("math" ) // 比較大小 a,b float64 其他的最大最小得自己實現 Math.max(a,b) Math.min(a,b) // 最大數 最小數 math.MaxInt64 math.MinInt64 ? math.Sqrt(5) // 開方 返回float64 math.Pow(a,b) // 求冪 參數都是float64sort & 排序 // 排序 sort…

探索Linux中的神奇工具:深入了解wc命令

探索Linux中的神奇工具&#xff1a;深入了解wc命令 在Linux系統中&#xff0c;wc命令是一個簡單但功能強大的工具&#xff0c;用于統計文件中的字數、行數和字符數。本文將詳細介紹wc命令的基本用法和一些常見選項&#xff0c;幫助讀者更好地理解和運用這個命令。 了解wc命令…

移動硬盤不小心制作成啟動盤怎么辦?別慌,這樣解決更輕松

在數字化時代&#xff0c;移動硬盤作為我們存儲和攜帶重要數據的重要設備&#xff0c;其安全性與便利性不言而喻。然而&#xff0c;在日常使用中&#xff0c;我們可能會遇到一些意想不到的情況&#xff0c;比如一不小心將移動硬盤制作成了啟動盤。面對這種情況&#xff0c;許多…

【Linux】centos7修改主機名

在CentOS 7中&#xff0c;您可以使用hostnamectl命令修改主機名。以下是步驟和示例代碼&#xff1a; 查看當前主機名&#xff1a; hostnamectl status 設置靜態主機名&#xff1a; sudo hostnamectl set-hostname 新主機名 將新主機名替換為您想要設置的主機名。 退出并重新登…

HTTP 重定向 狀態碼3xx

http狀態碼301代表永久重定向。當服務器收到客戶端的請求時&#xff0c;會將其重定向到另一個url&#xff0c;而不是返回請求的資源。通常用于以下情況&#xff1a; 1、當網站的url結構發生變化或網站遷移到新的域名時。 2、當網站上存在重復內容時&#xff0c;可以使用301狀態…

go select 原理

編譯器會使用如下的流程處理 select 語句&#xff1a; 將所有的 case 轉換成包含 channel 以及類型等信息的 runtime.scase 結構體。調用運行時函數 runtime.selectgo 從多個準備就緒的 channel 中選擇一個可執行的 runtime.scase 結構體。通過 for 循環生成一組 if 語句&…

Spring-AOP入門案例

Spring-AOP&#xff08;Aspect Oriented Programming&#xff0c;面向切面編程&#xff09;是Spring框架的一個重要部分&#xff0c;它允許開發者在不修改原有業務邏輯代碼的情況下&#xff0c;為程序添加額外的功能&#xff0c;如日志記錄、事務管理、安全性控制等。以下是一個…

使用OPENCV查找邊界,提取出面積前top_n的圖像部分,順序粘貼到指定背景圖像上合成單個照片

使用OPENCV查找邊界,提取出面積前top_n的圖像部分,順序粘貼到指定背景圖像上合成單個照片 注意,僅適用于簡單邊緣邊界 import argparse import sysimport cv2 import os import numpy as npif __name__ "__main__":parser argparse.ArgumentParser(description請指…

1W、2W 3KVAC隔離 寬電壓輸入 交直兩用AC/DC 電源模塊——TP01(02)AZ 系列

TP01(02)AZ為客戶提供一款超小體積模塊式開關電源&#xff0c;該系列模塊電源輸出功 率為1W、2W&#xff0c;具有極低的空載損耗&#xff0c;低漏電流僅0.1mA&#xff0c;小體積&#xff0c;隔離耐壓高達 3KV等特點。產品安全可靠&#xff0c;EMC 性能好&#xff0c;EMC 及安全…

【低照度圖像增強系列(7)】RDDNet算法詳解與代碼實現(同濟大學|ICME)

前言 ?? 在低照度場景下進行目標檢測任務&#xff0c;常存在圖像RGB特征信息少、提取特征困難、目標識別和定位精度低等問題&#xff0c;給檢測帶來一定的難度。 &#x1f33b;使用圖像增強模塊對原始圖像進行畫質提升&#xff0c;恢復各類圖像信息&#xff0c;再使用目標檢測…

裝飾器模式與代理模式的區別?

代理模式 為其他對象提供一種代理以控制對這個對象的訪問。在某些情況下&#xff0c;一個對象不適合或者不能直接引用另一個對象&#xff0c;而代理對象可以在客戶端和目標對象之間起到中介的作用。 代理模式的適用場景&#xff1a; 功能增強 當需要對一個對象的訪問提供一些…

SpringBoot(九)之整合mybatis

SpringBoot&#xff08;九&#xff09;之整合mybatis 文章目錄 SpringBoot&#xff08;九&#xff09;之整合mybatisSpring整合mybatis回顧1. 引入依賴2. mybatis-config.xml SpringBoot整合mybatis1.引入依賴2. 配置數據源和 MyBatis 屬性3. 配置 Mapper 接口4. 配置mapper.xm…

Python | 十一、項目搭建

項目環境配置 python setup.py 是 Python 中設置、分發和安裝模塊的傳統方式。setup.py 文件通常位于一個 Python 項目的根目錄下&#xff0c;并且定義了一個名為 setup 的函數。這個 setup 函數是 setuptools&#xff08;或者早期的 distutils&#xff09;模塊的一部分&#…

絕緣監測系統在1kV 及以下低壓配電系統的應用

安科瑞電氣股份有限公司 祁潔 acrelqj 一、系統概述 Acrel-2000L/A 絕緣監測系統設備適用于 1kV 及以下低壓配電系統。該設備可以集中采集監測顯示絕緣監測儀的數據&#xff0c;實現最多 8 個絕緣監測儀的數據&#xff0c;并且實時記錄告警信息和曲線查詢。匹配的絕緣監測儀…

【INTEL(ALTERA)】采用 JTAG 頻率為 24MHz 或 16Mhz 的非流水線Nios? V/m 處理器,niosv-download 失敗

說明 在英特爾 Quartus Prime Pro Edition 軟件 23.3 版及更高版本中將 Nios V 處理器軟件下載到非流水線Nios V/m 處理器時&#xff0c;可能會出現此問題。 這是由于處理器限制&#xff0c;僅影響非流水線Nios V/m 處理器。 以下其他處理器不受此限制的影響&#xff1a; 管…