为了账号安全,请及时绑定邮箱和手机立即绑定

JSON和JSONP有什么区别?

JSON和JSONP有什么区别?

Qyouu 2019-06-21 16:54:27
JSON和JSONP有什么区别?格式明智,文件类型明智,实用WISE?
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

基本上,由于相同的来源策略,您不允许通过Ajax从另一个域请求JSON数据。Ajax允许您在页面加载后获取数据,然后在函数返回后执行一些代码/调用函数。我们不能使用Ajax,但允许注入<script>标记进入我们自己的页面,这些标记允许引用其他域托管的脚本。

通常,您会使用它来包含来自CDN的库,例如jQuery..但是,我们可以滥用它并使用它来获取数据!JSON已经是有效的JavaScript(在大多数情况下),但是我们不能只在脚本文件中返回JSON,因为我们无法知道脚本/数据什么时候加载完,除非分配给变量或传递给函数,否则我们无法访问它。因此,我们所做的是告诉Web服务在它准备好时代表我们调用一个函数。

例如,我们可能会从股票交易所API中请求一些数据,并且与我们通常的API参数一起,我们给它一个回调,如下callThisWhenReady..然后,Web服务用我们的函数包装数据,并按如下方式返回:callThisWhenReady({...data...})..现在,一旦脚本加载,浏览器就会尝试执行它(正常情况下),这反过来调用我们的任意函数,并向我们提供我们想要的数据。

它的工作原理非常类似于普通的Ajax请求,除了调用匿名函数之外,我们还必须使用命名函数。

实际上,jQuery为您提供了无缝的支持,为您创建了一个唯一命名的函数,并将其传递出去,然后它将运行您想要的代码。


查看完整回答
反对 回复 2019-06-21
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

JSONP允许您指定传递JSON对象的回调函数。这允许您绕过相同的原始策略,并将JSON从外部服务器加载到网页上的JavaScript中。


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 928 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信