gpt4 book ai didi

javascript - 将 JSONP 与 AJAX 结合使用

转载 作者:行者123 更新时间:2023-11-28 21:19:04 26 4
gpt4 key购买 nike

我有一个正在使用维基百科 API 的页面。但由于我无法使用 JSON 进行跨域限制,因此我使用 JSONP。现在,如果我像

这样查询,我就可以使用 api
<script type="text/javascript">
function res(data){
alert(data);
};
</script>
<script type="text/javascript" src="http://en.wikipedia.org/w/api.php?action=opensearch&search=api&callback=res&limit=10&namespace=0&format=json">
</script>

但我想通过AJAX来使用它。我怎样才能做到这一点?有些人建议我使用 jQuery,但有人可以解释一下我如何用纯 JavaScript 做到这一点吗?

Is in't there some way that i can use JSONP with asynchronous XHR calls?

创建然后删除脚本元素是我想避免的事情。

最佳答案

JSONP 调用本质上不是异步的,因为它们使用 script 标记。您可以通过稍后以编程方式附加这些标签来推迟它们的执行,如下所示:

sendJsonpRequest = function (url, callback) {
if (!(url && callback)) { return; }

// create script element
var script = document.createElement("script"),
jsonpCallback = "jsonp_" + new Date(),
done = false;

url = url.replace(/\&$/, "") + "&callback=" + jsonpCallback;

window[jsonpCallback] = function (args) {
callback(args);

// Garbage collect
window[jsonpCallback] = undefined;
try { delete window[jsonpCallback]; } catch (e) { }
if (head) { head.removeChild(script); }
};

script.src = url;
head.appendChild(script);
};

关于javascript - 将 JSONP 与 AJAX 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6851598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com