全稱 (非同步 和`XML`),是一種用於創建快速動態網頁的技術。它在不重載全部網頁頁面的情況下,實現了對部分網頁的更新。 請求和瀏覽器地址請求區別 瀏覽器發起的請求,請求結果展示在瀏覽器上 發起的請求,結果保存在 變數里 適用場景 註冊用戶時,對用戶名的唯一性進行驗證 發送手機驗證碼 只要是不刷新網 ...
Ajax
Ajax
全稱Asynchronous Javascript And XML
(非同步JavaScript
和XML
),是一種用於創建快速動態網頁的技術。它在不重載全部網頁頁面的情況下,實現了對部分網頁的更新。
ajax
請求和瀏覽器地址請求區別
- 瀏覽器發起的請求,請求結果展示在瀏覽器上
ajax
發起的請求,結果保存在js
變數里
適用場景
- 註冊用戶時,對用戶名的唯一性進行驗證
- 發送手機驗證碼
- 只要是不刷新網頁,收發數據的情況,
ajax
都是不錯的選擇
語法:$.ajax([settings])
常備參數
url
:發送請求的地址type
:請求方式,值為GET
,POST
,預設為GET
data
:發送到伺服器的數據async
:請求類型,值為true
,false
,分別代表非同步和同步,預設為true
dataType
:預期伺服器返回的數據類型,可用值xml
,html
,json
,text
等success
:Function()
,請求成功後的回調函數error
,Function()
,請求失敗後的回調函數timeout
:設置請求超時時間(毫秒)
註:當dataType
為json
,即返回值類型為json
的情況下,ajax
獲取到的值是object
類型
ajax
中需要註意的問題:
跨域問題
說到跨域,必須得理解同源的概念,同源:兩個頁面地址中的協議、功能變數名稱和埠號都相同。而跨域則是源A中的代碼去請求源B中的數據,由於安全方面的原因,客戶端js
使用XMLHttpRequest
只能同源訪問,跨域訪問會出錯。(暫不提如何解決跨域問題)
ajax
調試
進入Chrome
控制台
點擊network
headers
:在request headers
中可以看到發送的數據response
:伺服器返回的內容
選中XHR
:XML HTTP Request
,表示由ajax
發起的請求
關於JSON
JSON
全稱JavaScript Object Notation
,JS
對象簡譜,是一種輕量級的數據交換格式。
語法:
- 對象表示為鍵值對
- 數據由逗號分隔
- 花括弧保存對象
- 方括弧保存數據
JSON
和JS
對象的關係
JSON
是JS
對象的字元串表示法,它使用文本表示一個JS
對象的信息,本質是一個字元串。
var obj = {a: 'Hello', b: 'World'}; //js對象
var json = "{'a': 'Hello', 'b': 'World'}"; //JSON字元串
JSON
和JS
對象互轉
要實現從對象轉換為JSON
字元串,使用JSON.stringify()
方法:
var json = JSON.stringify({a: 'Hello', b: 'World'}); //結果是"{'a': 'Hello', 'b': 'World'}"
要實現從JSON
轉為對象,使用JSON.Parse()
方法:
var obj = JSON.parse("{'a': 'Hello', 'b': 'World'}"); //結果是{a: 'Hello', b: 'World'}
JSON
和PHP
對象互轉
$str = json_encode($obj); //對象轉JSON字元串
$obj = json_decode($json); //JSON字元串轉對象