在 Safari 中未定义获取(ReferenceError:找不到变量:获取)

Posted

技术标签:

【中文标题】在 Safari 中未定义获取(ReferenceError:找不到变量:获取)【英文标题】:fetch not defined in Safari (ReferenceError: Can't find variable: fetch) 【发布时间】:2016-06-20 04:53:58 【问题描述】:

由于某种原因fetch (https://fetch.spec.whatwg.org/) 未在 Safari(版本 9.0.3)中定义,有人知道为什么吗?它似乎是标准并且在 Chrome 和 Firefox 中运行良好。似乎找不到其他人有同样的问题

我正在使用 react with redux,这里是一些示例代码:

export function fetchData (url) 
  return dispatch => 
    dispatch(loading())
    fetch(url, 
      method: 'GET'
    )
    .then(response => 
      response.json()
      .then(data => 
        dispatch(success(data))
      )
    )
  

【问题讨论】:

caniuse.com/#search=fetch fetch 不受 Safari 支持。 两年前 safari 还不支持 fetch ……这浏览器好可怜! 【参考方案1】:

对于不受支持的浏览器,您可以使用 https://github.com/github/fetch polyfill。

npm install whatwg-fetch --save; 

编辑:(根据 cmets)

添加

import 'whatwg-fetch'; 

在每个文件中使用 fetch – oliviergg

【讨论】:

谢谢,应该知道的。 我正在使用它(es6-promise polyfill 也是如此),但在 ios 上查看它时,我一直收到完全相同的错误。 (没有可用于 cmets 的编辑..):Stock android 也有同样的问题。 @nickvda 在使用 fetch 之前尝试添加 import 'whatwg-fetch';【参考方案2】:

使用whatwg-fetch polyfill。 如果你使用webpack,你可以把它添加到入口点

entry: 
  app: ['whatwg-fetch', 'your-index.js']

【讨论】:

以上是关于在 Safari 中未定义获取(ReferenceError:找不到变量:获取)的主要内容,如果未能解决你的问题,请参考以下文章

safari 14.2 中未显示着色器材质

iOS上的safari中未显示电话号码

第一次在 Safari (mac) 中未正确加载素材图标

DatePicker 在 Bootstrap 3 (Safari/Chrome) 的模式窗口中未正确显示

通过长按链接打开的共享菜单中的 Safari 浏览器中未显示应用程序图标

Codeigniter:在 mac safari 中未检测到 vcf mime 类型