По-настоящему кросс -браузерная и совместимая вперед библиотека для выполнения асинхронных HTTP-запросов по шаблону c all back .
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, String, URLSearchParams, ReadableStream |
реквизиты для входа | 'того же происхождения' | «включить», «опустить»⁶, «того же происхождения» |
заголовки | {} | Объект, Заголовки³ |
метод | 'ПОЛУЧАТЬ' | Нить |
режим | 'того же происхождения' | «корс», «не-корс»¹, «того же происхождения» |
пароль | нулевой | Нить |
параметры | URLSearchParams, Объект, Строка | |
ответмедиатип² | Нить | |
тип ответа | 'текст', 'json', 'blob', 'документ', 'arraybuffer', 'formdata'¹, 'moz-blob', 'moz-chunked-arraybuffer', 'moz-chunked-text', 'msxml- документ' | |
тайм-аут | 0 | ℕ |
имя пользователя | нулевой | Нить |
URL | location.href | Строка, URL |
многочастный⁷ | ЛОЖЬ | логическое значение |
туннелирование⁵ | ЛОЖЬ | логическое значение |
XSLПаттерн⁴ | ЛОЖЬ | логическое значение |
Свойство | Тип |
---|---|
кусок | Строка, ArrayBuffer, Blob, Uint8Array, ноль |
совокупность | Строка, ArrayBuffer, Blob, Uint8Array, ноль |
загружен | ℕ |
общий | ℕ |
длинаВычислимая | логическое значение |
Свойство | Тип |
---|---|
тело | Объект, строка, документ, ArrayBuffer, Blob, FormData¹, ReadableStream¹, ноль |
заголовки | Объект |
пример | XMLHttpRequest, XDomainRequest, Ответ, AnonXMLHttpRequest |
код статуса | ℕ |
статустекст | Нить |
URL | Нить |
¹ только выборка
² Только XHR
³ кроме Геккона 34–43
⁴ Только MSXML 3.0
⁵ переопределение метода
⁶ принести, Геккон 16+, Престо/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
Access-Control-Allow-Origin
либо *
, либо точным URL-адресом запрашивающего документа. Настройки Internet Explorer по умолчанию ограничивают использование сторонних файлов cookie, если только декларация компактной политики P3P не включена в пользовательский заголовок ответа HTTP; следовательно, режим учетных данных "include"
не может быть полностью соблюден, если файл cookie признан неудовлетворительным.