我似乎无法找到一个明确的答案 - p
JSONP 代表什么?到目前为止,我找到的候选人是padding
和prints
。有人知道 JSONP 名称的来源吗?
5 回答
填充。
来自http://en.wikipedia.org/wiki/JSONP
JSONP 或“带填充的 JSON”是对基本 JSON 数据格式的补充,一种允许页面从不同域中的服务器请求数据的使用模式。JSONP 是这个问题的解决方案,形成了一种替代最近的方法,称为跨域资源共享。填充
虽然填充(前缀)通常是在浏览器的执行上下文中定义的回调函数的名称,但它也可以是变量赋值、if 语句或任何其他 Javascript 语句。对 JSONP 请求(即遵循 JSONP 使用模式的请求)的响应不是 JSON,不会被解析为 JSON;返回的有效负载可以是任意的 JavaScript 表达式,并且根本不需要包含任何 JSON。但按照惯例,它是一个 Javascript 片段,它对一些 JSON 格式的数据调用函数调用。
换句话说,JSONP 的典型使用通过将 JSON 有效负载包装在函数调用中来提供对现有 JSON API 的跨域访问。
希望有帮助。谷歌赢了!
结石,
据我所知,它代表“填充”。维基百科上有关于它的解释: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}
这有意义吗?
在维基百科中,它代表“填充”(或带有填充)。
它基本上意味着在 JSON 周围添加一个调用函数。AJAX 只能从您自己的服务器调用,而不是跨域。因此,要从客户端的不同服务器加载数据,您需要发出 JSONP 请求,基本上您从其他服务器加载一个普通的 javascript 文件,就像您包含一个普通的 javascript 文件一样。由于 JSON 不是有效的 javascript 文件,因此 JSON 被包装在一个函数调用中以使其成为有效的 js 文件。包装好的函数(已经在您的代码中)然后提取该数据并将其显示在您的页面上。