cb fetch
1.10.0
一個真正的跨行和前向相容的函式庫,用於執行遵循回呼模式的非同步 HTTP 請求。
npm install --save cb-fetch
yarn add cb-fetch
jspm install cb-fetch
bower install --save cb-fetch
< script src = " //cdn.jsdelivr.net/combine/npm/@string/isstring/isString.min.js,npm/cb-fetch/index.min.js " type = " text/javascript " ></ script >
define(function (require) {
var request = require('cb-fetch');
});
var request = require('cb-fetch')['default'];
var request = require('cb-fetch');
YUI({
modules: { 'is-string': 'path/to/@string/isstring.js' }
}).use('is-string', 'cb-fetch', function (Y) {
var request = Y['default'];
});
import request = require('cb-fetch');
如果前面列出的模組註冊方法均不受支持,則將公開名為request
全域變數。
// here's your typical request
request ( 'http://www.example.com?key1=value1&key2=value2' )
. done ( response => { /* … */ } ) ;
// taking a comprehensive approach is encouraged though
request ( )
. get ( 'http://www.example.com' )
. query ( 'key1=value1&key2=value2' )
. done ( onSuccessCallback , onErrorCallback ) ;
// passing an object offers options not available otherwise
let abort = request ( {
url : new URL ( 'http://www.example.com' ) ,
parameters : new URLSearchParams ( '_csrf=TOKEN' ) ,
mode : 'cors' ,
credentials : 'include' ,
responseType : 'json'
} ) . get ( '/segment' )
. query ( { foo : [ 'bar' , 'qux' ] } )
. pass ( 'Content-Type' , 'application/json' )
. hook ( 'download' , e => { /* … */ } )
. done ( {
success : onSuccessCallback ,
error : onErrorCallback ,
abort : onAbortCallback
} ) ;
// forcefully aborts the request
abort ( ) ;
fetch
XMLHttpRequest
XDomainRequest
(Options.url?) => Object
(Options.parameters?) => Object
(Options.body?) => Object
('loadstart', () => Boolean | Void) => Object
('download', Object => Any) => Object
('loadend', () => Any) => Object
{
(name: String, value: String),
(headers: Object | Headers)
} => Object
// assigns
. pass ( new Headers ( { key : 'value' } ) )
// appends
. pass ( { key : 'value' } )
// sets
. pass ( 'key' , 'value' )
{
(onSuccess?: Function, onError?: Function),
({
success?: Function,
error?: Function,
timeout?: Function,
abort?: Function
})
} => () => Void,
throws: TypeError
財產 | 預設 | 值 |
---|---|---|
身體 | 無效的 | BufferSource、Blob、Document²、FormData、字串、URLSearchParams、ReadableStream |
證書 | ‘同源’ | “包含”、“省略”⁶、“同源” |
標頭 | {} | 對象、標題³ |
方法 | '得到' | 細繩 |
模式 | ‘同源’ | “cors”、“無cors”、“同源” |
密碼 | 無效的 | 細繩 |
參數 | URLSearchParams、物件、字串 | |
響應媒體類型² | 細繩 | |
回應類型 | 'text', 'json', 'blob', 'document', 'arraybuffer', 'formdata'¹, 'moz-blob', 'moz-chunked-arraybuffer', 'moz-chunked-text', 'msxml-文件' | |
暫停 | 0 | ℕ |
使用者名稱 | 無效的 | 細繩 |
網址 | 位置.href | 字串、網址 |
多部分⁷ | 錯誤的 | 布林值 |
隧道⁵ | 錯誤的 | 布林值 |
XSL模式⁴ | 錯誤的 | 布林值 |
財產 | 類型 |
---|---|
區塊 | 字串、ArrayBuffer、Blob、Uint8Array、null |
總計的 | 字串、ArrayBuffer、Blob、Uint8Array、null |
已載入 | ℕ |
全部的 | ℕ |
長度可計算 | 布林值 |
財產 | 類型 |
---|---|
身體 | 物件、字串、文件、ArrayBuffer、Blob、FormData、ReadableStream、null |
標頭 | 目的 |
實例 | XMLHttpRequest、XDomainRequest、回應、AnonXMLHttpRequest |
狀態碼 | ℕ |
狀態文字 | 細繩 |
網址 | 細繩 |
1 僅獲取
² 僅 XHR
³ 壁虎 34–43 除外
⁴ 僅限 MSXML 3.0
⁵ 方法重寫
⁶ 獲取、Gecko 16+、Presto/2.10.232–2.12.423
⁷ 壁虎 1.7β–22
delete
保留關鍵字在 ES5 之前的環境中,刪除方法需要使用括號表示法。
對於由 Gecko 1.9.1–20 提供支援的瀏覽器,要將公開的回應標頭填入headers
屬性中,必須滿足以下條件:
Access-Control-Expose-Headers
回應標頭暴露自身Access-Control-Expose-Headers
欄位值不是*
mode
設定為cors
XDomainRequest
內在限制*
或請求文件的確切 URL 的Access-Control-Allow-Origin
標頭進行回應Internet Explorer 的預設設定限制使用第3 方 cookie,除非已透過自訂 HTTP 回應標頭包含 P3P 精簡原則宣告;因此,如果 cookie 被認為不令人滿意,則無法完全遵守"include"
憑證模式。