我似乎无法找到明确的答案 - JSONP中的p
代表什么?我到目前为止找到的候选人是padding
和prints
。有人知道JSONP名称的来源吗?
答案 0 :(得分:7)
填充。
来自http://en.wikipedia.org/wiki/JSONP
JSONP或“带填充的JSON”是对基本JSON数据的补充 格式,允许页面从a请求数据的使用模式 服务器在不同的域中。 JSONP是这个问题的解决方案, 形成一种名为Cross-Origin的更新方法的替代方案 资源共享。 填充
虽然填充(前缀)通常是回调的名称 在浏览器的执行上下文中定义的函数, 它也可以是变量赋值,if语句或任何其他赋值 Javascript声明。对JSONP请求的响应(即,a 遵循JSONP使用模式的请求)不是JSON而不是 解析为JSON;返回的有效负载可以是任意JavaScript 表达式,它根本不需要包含任何JSON。但 通常,它是一个调用函数的Javascript片段 调用一些JSON格式的数据。
换句话说,JSONP的典型用途是提供跨域 通过将JSON有效负载包装在一个中来访问现有的JSON API 功能调用。
希望有所帮助。谷歌赢了!
答案 1 :(得分:3)
石,
我所知道的,它代表'填充'。在维基百科上有一个关于它的解释:JsonP
它的作用是什么?
它使您可以发出CROSS-DOMAIN请求并返回JSON数据。 通常通过HTML 脚本标记,您需要另一个JavaScript。
但是JsonP为你提供了一个回调函数,你可以返回noraml Json响应。
示例:
您创建了一个脚本标记:
<script type="text/javascript" scr="http://anotherDomain/Car?CarId=5&jsonp=GiveCarResponse"></script>
在此脚本中,GiveCarResponse是另一个域上的回调函数。调用此函数将导致Json响应。例如:
{"CarId":5, "Brand":"BMVV", "GAS": false}
这有意义吗?
答案 2 :(得分:1)
来自维基百科,它代表“填充”(或填充)。
答案 3 :(得分:1)
嗯......你见过wikipedia page,你不确定它的准确性?
这standards site似乎证实了“带填充”。
答案 4 :(得分:0)
它基本上意味着在JSON周围添加一个调用函数。 AJAX只能从您自己的服务器调用,而不是跨域。因此,要从客户端的不同服务器加载数据,您发出JSONP请求,基本上您从其他服务器加载正常的javascript文件就像您包含一个普通的javascript文件一样。由于JSON不是有效的javascript文件,因此JSON被包含在函数调用中以使其成为有效的js文件。包裹的功能(已在您的代码中)然后提取该数据并将其显示在您的页面上。