2010-06-13 45 views
4

可能重复:
Please explain JSONPJSON和JSONP有什么区别?

例如jQuery的文档中我发现JSON和JSONP都提及。究竟有什么区别?我怎么看到哪个是哪个?哪一个应该用于什么?

什么是PHP函数json_encode生成?

+1

对于基本/细微的差异,维基百科是一个伟大的资源在这里:http://en.wikipedia.org/wiki/JSON#JSONP – 2010-06-13 16:24:01

+1

请[请解释JSONP](http://stackoverflow.com/questions/ 2067472 /请-解释-JSONP) – 2010-06-13 16:24:56

回答

6

JSON是一种简单的数据格式。 JSONP是一种使用该格式与跨域ajax请求同时未遇到Same Origin Policy问题的方法。基本上,这个想法是,不是使用ajax来请求JSON编码的数据,而是向页面添加一个脚本标记,将该数据加载为JavaScript脚本,并将代码回调为“这里是数据”。这是有效的,因为应用于JavaScript脚本的“起源”是文档的起源,而不是脚本的来源,这意味着它可以访问您的代码以调用回调。

json_encode产生JSON。如果您需要启用跨域呼叫,您可能会使用json_encode作为为系统提供JSONP接口的一部分。我们将继续使用它,但在IE中尚未得到很好的支持(IE7和以下版本根本没有它; IE8有它,但要求使用IE8)客户端代码做了特别的事情; Chrome,Firefox等有它,并且不需要客户端代码做任何特殊的事情)。