jQuery ajax 是一種常用的異步傳輸數據和更新界面的技術。它可以向服務器端發送請求,將結果返回給客戶端,并在頁面上動態地刷新數據。然而,在某些情況下,官方的 jquery ajax 接口可能不滿足我們的需求,這時我們就需要重寫 ajax 函數。
具體而言,我們可以使用 javascript 原生的 XMLHttpRequest 對象來實現 ajax 功能。通過創建 XMLHttpRequest 實例,并指定請求方法、請求地址、請求參數等,我們可以在頁面自定義請求規則,從而實現更加復雜的業務需求。
function ajax(url, options) { return new Promise((resolve, reject) =>{ let xhr = new XMLHttpRequest(); xhr.open(options.method, url); xhr.setRequestHeader('Content-type', 'application/json'); xhr.onload = function() { if (xhr.status >= 200 && xhr.status< 300) { resolve(JSON.parse(xhr.response)); } else { reject(xhr.statusText); } }; xhr.onerror = function() { reject(xhr.statusText); }; xhr.send(JSON.stringify(options.data)); }); }
如上面的代碼所示,我們通過創建一個 Promise 對象,并使用 XMLHttpRequest 來實現 ajax 功能。該 ajax 函數接受兩個參數,分別為請求的 url 和一個 options 對象,其中 options 中包括請求的方法類型、請求攜帶的數據等信息。當請求成功時,我們將返回結果解析為 JSON 格式并返回,否則我們將返回 xhr 的錯誤信息。
在實際應用中,我們可以將該 ajax 函數封裝成一個類庫,方便我們在不同的項目中進行復用。同時,我們也可以自定義更多的功能,例如設置請求超時時間、自定義請求頭部信息等,從而實現更加靈活和強大的功能。