我理解JSON,但不了解JSONP.维基百科关于JSON的文档是JSONP的最佳搜索结果.它说:
JSONP或"带填充的JSON"是JSON扩展,其中前缀被指定为调用本身的输入参数.
咦?什么电话?这对我没有任何意义.JSON是一种数据格式.没有电话.
在第二个搜索结果是由某些人叫雷米,谁写的这个约JSONP:
JSONP是脚本标记注入,将响应从服务器传递到用户指定的函数.
我可以理解这一点,但它仍然没有任何意义.
那么什么是JSONP?它为什么被创建(它解决了什么问题)?为什么我会用它?
附录:我刚刚在维基百科上为JSONP创建了一个新页面 ; 根据jvenema的回答,它现在对JSONP进行了清晰而全面的描述.
它实际上并不太复杂......
假设您在域example.com上,并且您想向域example.net发出请求.要做到这一点,你需要跨越域边界,在大多数浏览器领域都是禁忌.
绕过此限制的一项是
但是这有点不方便,因为我们必须从脚本标记中获取此数组.所以JSONP创建者决定这会更好(并且它是):
script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'http://www.someWebApiServer.com/some-data?callback=my_callback';
注意那边的my_callback函数?所以 - 当JSONP服务器收到你的请求并找到回调参数 - 而不是返回普通的js数组时,它将返回:
my_callback({['some string 1', 'some data', 'whatever data']});
看看利润在哪里:现在我们得到自动回调(my_callback),一旦我们获得数据就会被触发.
这就是JSONP的全部知识:它是一个回调和脚本标签.
注意:这些是JSONP使用的简单示例,这些不是生产就绪脚本.
基本JavaScript示例(使用JSONP的简单Twitter提要)
Tags | 热门标签RankList | 热门文章
- 1WP8.1和WP10的区别
- 2如何在nodejs中使用.write函数用于wav模块
- 3Django模型:在日期,desc顺序上添加索引
- 4AngularJS强制Firefox/Safari下载文件而不是在浏览器中打开
- 5如何在调用ladderize函数后在APE中获得正确的tip标签顺序
- 6运行IPyhon.widgets时没有名为"ipywidgets"的模块错误
- 7如何分割4列,一行分为2列,两行?
- 8如何在x86中执行Int64的Interlocked.CompareExchange
- 9无法通过WWW加载电影
- 10Java语法在变量之前重复类名
- 11我可以将2字节大小的变量作为1字节大小的变量发送吗?
- 12JavaScript中"break Identifier"的用例是什么?
- 13表达式___在检查后发生了变化
- 14快速重启pod
- 15处理Swift中的错误
- 16通过AWS API Gateway发布表单数据和二进制数据
- 17PyCharm不会将cv2识别为模块
- 18Spark Cluster,无法连接到master.(WARN工作者:无法连接到主人)
- 19如何让它看起来像电脑打字?
- 20Lisp:传递和休息参数到宏