gpt4 book ai didi

javascript - 为什么使用 JSONP 和回调而不是调用者定义的变量名?

转载 作者:行者123 更新时间:2023-11-28 08:03:49 25 4
gpt4 key购买 nike

我理解 jsonp 背后的想法,并且我确信不执行以下操作是有原因的,但我很好奇那是什么。

为什么(出于安全性、易用性等原因)人们不创建如下所示的 API?

http://www.something.com/json/?caller_var_name=the_var

返回的 JavaScript 包含:

the_var = {"my": "json", "content": 1};

在客户端,代码如下所示:

<script>
var the_var;
</script>
<script src="http://www.something.com/json?varname=the_var"></script>
// the_var now contains the requested JSON data

这看起来很简单,我已经跨域测试过它,但正如前面提到的,我确信那些考虑 JSONP 的人有理由不执行上述操作。这是为什么?

最佳答案

使用 "callback" function 的要点是您接到回电。该脚本确实是异步加载的,并且它确实让您自动调用您的函数 - 就好像 JSONP 脚本触发监听器

当然,使用变量的方法也可以工作,特别是对于同步加载脚本。然而,当使用异步加载时,我们需要轮询正在设置的变量值,或者使用 DOM 事件来执行脚本。前者受到鄙视,后者由于浏览器 API 不一致而变得(尤其是)复杂。

请注意,如果您仍然想执行此操作,可以通过将 ?callback=the_var%3D 放入 URL 参数中,将常见 JSONP api 与您的“变量样式”一起使用。

关于javascript - 为什么使用 JSONP 和回调而不是调用者定义的变量名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25025238/

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