`Fetch` API 已覆盖。如何访问原始功能?

`Fetch` API Overridden. How do I access the original function?

Fetch API 是完全可变的,可以通过

替换或删除
window.fetch = null;

或者,

var fetch = null;

或者,提取 属性 也可以删除。

delete window.fetch;

这意味着,如果遗留代码定义了一个名为 fetch 的全局变量,则无法使用提取 API。

有什么方法可以访问 JavaScript 中的原始 fetch 函数吗?

从 window 对象中删除后,它将不再可用... 但 您可以使用 pollyfill 导入 fetch https://github.com/github/fetch#importing

import {fetch as fetchPolyfill} from 'whatwg-fetch'

window.fetch(...)   // use native browser version
fetchPolyfill(...)  // use polyfill implementation

如果您不使用软件包,那么我只能推荐一件事。 作为第一个脚本标签,您可以执行以下操作:

<script>
window.MYFETCH = window.fetch;
</script>

我知道它并不完美,但您可以在任何需要的地方使用 MYFETCH。

非常感谢您的回答,但是 none 中的您正确回答了问题。 fetch 函数已经被删除,我们无法访问它。在这种情况下,我们可以使用以下简单的技巧。

这将为我们提供原始的获取功能。

function restoreFetch() {
    if (!window._restoredFetch) {
        const iframe = document.createElement('iframe');

        iframe.style.display = 'none';
        document.body.appendChild('iframe');

        window._restoredFetch = iframe.contentWindow.fetch;
    }

    return window._restoredFetch;
}

我们可以使用 fetch API:

const f = restoreFetch();

const result = await f('https://whosebug.com');