【问题标题】:SCRIPT5009: 'fetch' is undefinedSCRIPT5009:“获取”未定义
【发布时间】:2022-03-16 17:38:46
【问题描述】:

有一些麻烦!对于我的请求,我正在使用 Fetch API!

提交表单在 IE 中不起作用,因为“SCRIPT5009: 'fetch' is undefined”!

示例如下:

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)

同时在 Chrome 和 FF 中运行良好!我已经在尝试在 Google 上寻找一些解决方案,但是没有用!

我尝试在 npm 中安装“isomorphic-fetch”和“es6-promise”,并尝试将其导入到我的 .js 文件中,但同样失败,控制台显示:“Uncaught SyntaxError: Unexpected令牌导入”!顺便说一句, required() 函数也不能正常工作!所以我现在完全不知道该做什么,如何使用这些 polyfill 之类的东西!

如果有人有想法,请提前致谢! BR!

【问题讨论】:

  • 似乎fetch 在 IE 上不受支持。 developer.mozilla.org/en/docs/Web/API/Fetch_API
  • 是的,据我了解,它是关于原生 Fetch 的!但是来自 npm 的包,如“isomorfic-fetch”或“fetch-wg”,这些都是 pofylfill!但它现在对我有用,但对其他人有用!魔法!

标签: javascript node.js npm internet-explorer fetch-api


【解决方案1】:

您可以改用https://github.com/github/fetch

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

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

如果你需要Promise polyfill,你可以使用http://bluebirdjs.com/docs/install.html

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

fetch之前加载Bluebird

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

【讨论】:

  • 嗯,它看起来比原来好多了,但问题仍然存在!现在“'Promise' 未定义”,这来自 fetch.js,来自您提供的那个脚本
  • 救命稻草!我不得不同时使用这两个脚本,但工作起来就像一个魅力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 2013-12-16
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多