SCRIPT5009: 'fetch' is undefined

2019-01-28 21:16发布

问题:

have some troubles! For my requests i'm using Fetch API!

Submit form don't work in IE, because of "SCRIPT5009: 'fetch' is undefined"!

Example how it's looks like:

fetch("url",
        {
             method: "POST",
             body: JSON.stringify(data),
             headers: {
                 'Accept': 'application/json',
                 'Content-Type': 'application/json'
             }
         }).then(function (response) {
             return response.json().then(function (data)

Same time in Chrome and FF it's works fine! I'm already trying to find some solutions surfing Google, but it was unhelpful!

I was tried to installing "isomorphic-fetch" and "es6-promise" in npm, and tried to import it in my .js file, but it was unsuccessful as well, console shows me this: "Uncaught SyntaxError: Unexpected token import"! Btw, required() function don't work as well! So I'm totally don't now what to do, how to use these polyfill thing and all of that!

If some ones have an idea, thanks in advance! BR!

回答1:

You can use https://github.com/github/fetch instead.

CDN: https://cdnjs.com/libraries/fetch

<script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/2.0.3/fetch.js"></script>

If you need Promise polyfill you can use http://bluebirdjs.com/docs/install.html

<script src="//cdn.jsdelivr.net/bluebird/3.5.0/bluebird.min.js"></script>

Load Bluebird before fetch:

<script src="//cdn.jsdelivr.net/bluebird/3.5.0/bluebird.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/2.0.3/fetch.js"></script>