使用不在Edge 14上运行的参数获取API

问题描述 投票:3回答:2

我在我的应用程序请求中使用fetch,而对于不支持它的浏览器使用the polyfill。我从来没有遇到过问题(该应用适用于Edge 13,IE等)。

更具体地说,在Microsoft Edge 14上存在self.fetch,因此polyfill不适用。如果我用一个参数调用fetch,例如fetch('/api/users')它可以工作,但用2个参数调用它(我需要设置一些头文件,方法等)

fetch(request.url, {
    headers, 
    method: request.method || 'GET',
    body: request.body || null
})

它不起作用。它甚至没有进行调用,也没有抛出错误,没有。我一直在谷歌搜索一个小时,到目前为止没有运气。有任何想法吗?

显而易见的是对useragent进行脏检查并使用polyfill覆盖本机函数,但我想要更“优雅”的东西。也许我做错了什么。谢谢!

ecmascript-6 microsoft-edge fetch-api
2个回答
3
投票

好的,所以我在this post的帮助下找到了答案。显然它在尝试在body请求上发送GET参数时崩溃,即使它是空的或未定义的。

所以我只是先检查方法,如果是GET,我就不再添加身体了。这解决了我的问题


0
投票

其他任何人都坚持这个:

检查您的Edge版本,17不支持Promises,使用包含Edge 18和Promises的2018年10月更新升级Windows,获取请求将起作用。

https://www.microsoft.com/ja-jp/software-download/windows10

© www.soinside.com 2019 - 2024. All rights reserved.