如何使用fetchjsonp中止信号? fetchjsonp(url,{signal})?

我需要jsonp,但fetch()api不提供jsonp选项。 所以我找到了fetch-jsonp fetch-jsonp

但是,标准访存具有可选的abort.signal功能。

abortController = new AbortController()
signal = abortController.signal

fetch( url,{signal})

请参阅以下位置的提取信号API https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch

fetch-jsonp fetch-jsonp似乎未提供abort.signal选项

我该如何利用

 fetchjsonp( url,{signal})
zhuzheqi2096409 回答:如何使用fetchjsonp中止信号? fetchjsonp(url,{signal})?

JSONP是一个肮脏的hack。通过将<script>元素注入页面来工作。

您不能中止它,因为它不是设计成适当的HTTP API。

自从CORS于2009年问世以来,任何网络服务都没有充分的理由使用它。

如果可以,请修复该Web服务,使其支持JSON和CORS而不是JSONP。

否则,您可能需要构建自己的JSONP库。真正中止请求的最接近的方法是在事件发生后更改回调函数。

因此,您将按照以下方式进行操作:

const id = generate_a_unique_id();
window[`callback_${id}`] = function(data) { /* do something with data */ };
const url = `http://example.com/jsonp?callback=callback_${id}`;
const script = document.createElement('script');
script.src = url;
document.body.appendChild(script);

然后中止它:

window[`callback_${id}`] = function () { /* do nothing */ };
本文链接:https://www.f2er.com/2968303.html

大家都在问