`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');
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');