xhr.js
1.0.0
xhr.js 是一個使用XMLHttpRequest發出 AJAX/HTTP Restful 請求的函式庫(< 2Kb)。它具有與
Python-requests
類似的 API。
1.安裝xhr.js
npm install xhr.js
2.導入xhr.js
支援 UMD 匯入,然後取得全域物件: XHR
。
import XHR from 'xhr.js' ;
// or
var XHR = require ( "xhr.js" ) ;
或與 html 檔案中的script
連結:
< script src = "dist/xhr.min.js" > </ script >
3.使用XHR
類
var xhr = XHR ( async ) ; // default is async. you can set sync use XHR(false)
xhr . on ( 'success' , function ( result ) {
console . log ( 'status:' , result . status ) ;
console . log ( 'statusText:' , result . statusText ) ;
console . log ( 'url:' , result . url ) ;
console . log ( 'responseType:' , result . responseType ) ;
console . log ( 'text:' , result . text ) ;
console . log ( 'headers:' , result . headers ) ;
console . log ( 'ok:' , result . ok ( ) ) ; // get the json result.
console . log ( 'json:' , result . json ( ) ) ; // get the json result.
console . log ( 'xml:' , result . xml ( ) ) ;
console . log ( 'blob:' , result . blob ( ) ) ;
} ) ;
xhr . get ( 'package.json' , { 'a' : 'b' } ) ;
另一篇post
示範:
var xhr = XHR ( ) ;
xhr . post ( '/post_url' , { 'a' : 'b' } , function ( r ) {
r = r . json ( ) ; // get the json result.
// write your code
} ) ;
使用FormData
物件上傳檔案:
var fd = new FormData ( document . querySelector ( '#submit_form' ) ) ;
var xhr = new XHR ( ) ;
xhr . post ( '/submit/new' , fd , function ( r ) {
// request success
r = r . json ( ) ;
console . log ( r ) ;
} ) ;
xhr實例的API。
xhr.request(method, url, body, onsuccess, onfail)
:使用方法請求 url。xhr.on(event_key, event_func)
:將請求結果(就緒、錯誤、成功、失敗)與輸入的結果實例綁定。xhr.get(url, params, onsuccess, onfail)
:取得請求。xhr.post(url, params, onsuccess, onfail)
:發布請求。xhr.setRequestHeader(header_name, header_value)
:附加標頭。xhr.setAsync(aysnc)
:設定請求非同步/同步。xhr.url()
:取得請求 url。xhr.body()
:取得請求內文。xhr.abort()
:中止請求。xhr.reset()
:重設 xhr 實例,例如 url、headers、body、events。 evnet 金鑰適用on
.
ready
:當xhr
準備好時。success
:當status_code is 200
。fail
:當status_code is not 200
。 此api用於請求回呼函數參數result
。
result.text
:取得所有回應文字;result.status
:伺服器回應代碼;result.statusText
:伺服器回應代碼文本,例如ok
(狀態代碼為200
)。result.responseType
:回應類型;result.headers
:取得所有回應頭物件;result.ok()
:請求是否正常;result.json()
:取得回應文字的json物件;result.xml()
:取得回應文字的xml物件;result.blob()
:取得回應文字的blob物件;麻省理工學院