A: 這個是用 ajax 作的嗎
B: ajax 還是 $.ajax 呢
AJAX 可以說是前端最重要的技術沒有之一
主要功用是在不重刷頁面下作局部資料的動態更新
底下介紹常用的 ajax 技術
內文
- xhr
- $.ajax
- fetch
- axios
xhr
xhr 是最古老的 Ajax 技術 現在已經很少使用
但如果是為了支援一些古老的版本的瀏覽器 可以稍微認識一下
先來看一下簡單的代碼範例
此範例用於 get 方法請求取得隨機狗狗圖片的 JSON 資料
1 | // 宣告請求成功和失敗的函式 (此函式為請求成功或失敗後的 callback) |
補充 (設定標頭)
1 | xhr.setRequestHeader("token", "wefuni2hu43f9hr"); |
補充 (post 方法下設定 payload)
1 | xhr.send(JSON.stringify({ key: "value" })); |
$.ajax
此方法為 jQuery 所提供的 ajax 方法 實際上由 xhr 所封裝的
如果專案下以有引用此 library
則可以直接使用此方法
底下為代碼的部分
1 | // 建立 請求物件 |
補充(post 方法的 payload)
1 | ... |
fetch
fetch 是一個 HTML5 的 API 會回傳一個 es6 的 promise 物件
如果是在主流瀏覽器的執行環境下是可以直接使用的
1 | fetch("https://dog.ceo/api/breeds/image/random") |
補充 (加入其他 options)
1 | const options = { |
axios
一個非常流行的三方套件
支持瀏覽器中發送 XMLHttpRequests 與 Promise API
底下為參考的代碼範例
1 | import axios from "axios"; |
補充 (post payload)
1 | ... |
本文作者: David Huang
本文地址: https://davidblog.github.io/2020/06/20/ajax/