Eine wirklich browserübergreifende und vorwärtskompatible Bibliothek für asynchrone HTTP-Anfragen , die dem Rückrufmuster folgen .
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');
Wenn keine der zuvor aufgeführten Modulregistrierungsmethoden unterstützt wird, wird eine globale Variable namens request
verfügbar gemacht.
// 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
Eigentum | Standard | Werte) |
---|---|---|
Körper | null | BufferSource, Blob, Document², FormData, String, URLSearchParams, ReadableStream |
Anmeldeinformationen | 'gleicher Ursprung' | 'include', 'omit'⁶, 'same-origin' |
Kopfzeilen | {} | Objekt, Header³ |
Verfahren | 'ERHALTEN' | Zeichenfolge |
Modus | 'gleicher Herkunft' | 'cors', 'no-cors'¹, 'same-origin' |
Passwort | null | Zeichenfolge |
Parameter | URLSearchParams, Objekt, String | |
ResponseMediaType² | Zeichenfolge | |
Antworttyp | 'text', 'json', 'blob', 'document', 'arraybuffer', 'formdata'¹, 'moz-blob', 'moz-chunked-arraybuffer', 'moz-chunked-text', 'msxml- dokumentieren' | |
Time-out | 0 | ℕ |
Benutzername | null | Zeichenfolge |
URL | location.href | Zeichenfolge, URL |
mehrteilig⁷ | FALSCH | Boolescher Wert |
Tunnelbau⁵ | FALSCH | Boolescher Wert |
XSLPattern⁴ | FALSCH | Boolescher Wert |
Eigentum | Typ |
---|---|
Brocken | String, ArrayBuffer, Blob, Uint8Array, null |
Aggregat | String, ArrayBuffer, Blob, Uint8Array, null |
geladen | ℕ |
gesamt | ℕ |
LängeBerechenbar | Boolescher Wert |
Eigentum | Typ |
---|---|
Körper | Objekt, String, Dokument, ArrayBuffer, Blob, FormData¹, ReadableStream¹, null |
Kopfzeilen | Objekt |
Beispiel | XMLHttpRequest, XDomainRequest, Antwort, AnonXMLHttpRequest |
Statuscode | ℕ |
StatusText | Zeichenfolge |
URL | Zeichenfolge |
¹ Nur abrufen
² Nur XHR
³ außer Gecko 34–43
⁴ Nur MSXML 3.0
⁵ Methodenüberschreibung
⁶ fetch, Gecko 16+, Presto/2.10.232–2.12.423
⁷ Gecko 1,7β–22
delete
In Umgebungen vor ES5 erfordert die Löschmethode die Verwendung der Klammernotation.
Damit die von Gecko 1.9.1–20 unterstützten Browser die bereitgestellten Antwortheader in die headers
-Eigenschaft einfügen, müssen die folgenden Bedingungen erfüllt sein:
Access-Control-Expose-Headers
macht sich selbst verfügbarAccess-Control-Expose-Headers
ist nicht *
mode
auf cors
eingestelltXDomainRequest
Access-Control-Allow-Origin
Header entweder *
oder der genauen URL des anfordernden Dokuments antwortet Die Standardeinstellungen von Internet Explorer schränken die Verwendung von Cookies von Drittanbietern ein, es sei denn, eine P3P-Compact-Richtlinienerklärung wurde über einen benutzerdefinierten HTTP-Antwortheader eingefügt. Daher kann der Anmeldeinformationsmodus "include"
nicht vollständig berücksichtigt werden, wenn ein Cookie als unbefriedigend eingestuft wurde.