зеркало из https://github.com/github/fetch.git
8d6630e993 | ||
---|---|---|
LICENSE | ||
README.md | ||
fetch.js |
README.md
window.fetch polyfill
The global fetch
function is an easier way to make web requests and handle
responses than using an XMLHttpRequest. This polyfill is written as closely as
possible to the standard Fetch specification at https://fetch.spec.whatwg.org.
Installation
Available on Bower as fetch.
$ bower install fetch
You'll also need a Promise polyfill for older browsers.
$ bower install es6-promise
Usage
The fetch
function supports any HTTP method. We'll focus on GET and POST
example requests.
HTML
fetch('/users.html').then(function(response) {
document.body.innerHTML = response.body
})
JSON
fetch('/users.json')
.then(function(response) {
return response.json()
}).then(function(json) {
console.log('parsed json', json)
}).catch(function(ex) {
console.log('parsing failed', ex)
})
Response metadata
fetch('/users.json').then(function(response) {
console.log(response.headers.get('Content-Type'))
console.log(response.headers.get('Date'))
console.log(response.status)
console.log(response.statusText)
console.log(response.body)
})
Post form
var form = document.querySelector('form')
fetch('/query', {
method: 'post',
body: new FormData(form)
})
Post form fields
fetch('/query', {
method: 'post',
body: {
name: 'Hubot',
login: 'hubot'
}
})
Post JSON
fetch('/users', {
method: 'post',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Hubot',
login: 'hubot',
})
})
File upload
var input = document.querySelector('input[type="file"]')
var form = new FormData()
form.append('file', input.files[0])
form.append('user', 'hubot')
fetch('/avatars', {
method: 'post',
body: form
})
Browser Support
Latest ✔ | Latest ✔ | 10+ ✔ | Latest ✔ | 6.1+ ✔ |