Fetch Polyfill

fetch polyfill which supports all mainstream browsers, even IE6, IE7, IE8.....
Alternatives To Fetch Polyfill
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Fetch25,716250,5917,98822 days ago33February 27, 202119mitJavaScript
A window.fetch JavaScript polyfill.
Isomorphic Fetch6,936185,2066,7943 months ago23September 23, 202054mitJavaScript
Isomorphic WHATWG Fetch API, for Node & Browserify
Unfetch5,5602,467783a month ago7September 29, 202023mitJavaScript
🐕 Bare minimum 500b fetch polyfill.
Cross Fetch1,54614,3081,9422 days ago40April 10, 202214mitJavaScript
Universal WHATWG Fetch API for Node, Browsers and React Native.
Form To Google Sheets1,328
2 years ago41apache-2.0JavaScript
Store HTML form submissions in Google Sheets.
React Ie8988
4 years ago7January 06, 201621
Make your React app work in IE8
Fetch Jsonp9691,4006219 months ago16August 17, 2021JavaScript
Make JSONP request like window.fetch
Svgxuse744173629 months ago26October 25, 201713mitJavaScript
A simple polyfill that fetches external SVGs referenced in use elements when the browser itself fails to do so. Demo: https://icomoon.io/svgxuse-demo/
Url Search Params Polyfill5795403074 days ago22March 26, 20215mitJavaScript
a simple polyfill for javascript URLSearchParams
Abortcontroller Polyfill3131,4083173 months ago40October 08, 202212mitJavaScript
Polyfill for the AbortController DOM API and abortable fetch (stub that calls catch, doesn't actually abort request).
Alternatives To Fetch Polyfill
Select To Compare


Alternative Project Comparisons
Readme

fetch-polyfill

fetch polyfill which supports all mainstream browsers, even IE6, IE7, IE8.....

$ npm install fetch-polyfill2 --save
$ npm install bluebird -- save
$ npm install json3 -- save

HTML

<script src='path-to-node_modules/bulebird/bluebird.js' ></script>
<!--or other promise polyfill library-->
<script src='path-to-node_modules/json3/json3.js' ></script>
<script src='path-to-node_modules/fetch-polyfill2/dist/index.js' ></script>
<script>
fetch('/users.html')
  .then(function(response) {
    return response.text()
  }).then(function(body) {
    document.body.innerHTML = body
  })
</script>

It is strongly recommended that these three libraries be packaged together with webpack

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)
})

Post form

var form = document.querySelector('form')

fetch('/users', {
  method: 'POST',
  body: new FormData(form)
})

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 data = new FormData()
data.append('file', input.files[0])
data.append('user', 'hubot')

fetch('/avatars', {
  method: 'POST',
  body: data
})

###IE6-7 cors

涉及到的参数

jsonpCallbackFunction :  后端生成的函数名, 不传自动生成,与jQuery一致 jsonpCallback: 链接中的名字,不传为callback,与jQuery一致 charset: 设置script的字符集

所有情况下,想跨域,都需要手动设置 credentials: 'include' 所有情况下,如果想发送请求,想带着cookie, 都需要设置 credentials: 'include'

fetch('/users', { //jsonp!!!
  credentials: 'include',
}).then(function(response){
   return response.json()
}).then(function(){

})

###使用fetch下载HTML乱码问题

fetch('http://tieba.baidu.com')
    .then(res=> res.blob())
    .then(blob => {
        var reader = new FileReader();
        reader.onload = function(e) {
          var text = reader.result;
          console.log(text)
        }
        reader.readAsText(blob, 'GBK') //或 UTF8,逐个试
    })

更多用法见这里 http://www.w3ctech.com/topic/854

Popular Polyfill Projects
Popular Fetch Projects
Popular Libraries Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Javascript
Json
Jquery
Fetch
Cors
Polyfill