扫码关注官方订阅号
jsonp返回的数据格式与普通json的区别?
其实我想问的是 [jsonp返回的数据格式] 与 [普通json] 的区别,而不是问jsonp与json的区别。当通过jsonp方式访问时, 服务器端传回一个数组时, 就不是标准的json格式了吧?
ringa_lee
JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。两者不是同一种东西。
jsonp是一种跨域方法
json单纯的是一种数据格式。之所以很多人都会理解错误,是因为在jquery中都是datatype....
jsonp返回的其实是一个函数的调用,传入了一个参数,这个参数就是真正需要获取到的数据,而json就单纯的指代这个数据。
jsonp传送回来的应该是字符串的格式,回调函数得到的可能是这个字符串eval(猜的)后的数据
jsonp其实返回的是一个JS函数调用代码,把返回的数据和客户端能调用的函数名拼接在一起,放到浏览器环境下,去执行而得到最终的服务端数据,也就是jsonp是一种json数据的传输方式而不是格式而json是一个数据格式
例如
<script> //预定义个全局函数 function _jsonp(resultData){ return resultData; } </script> <script src="http://sxxxx.services/getList?p=yyyy"></script>
只要getList返回的内容为_jsonp({"a":"1234","b":9999});那么客户端就能得到结果数据 {"a":"1234","b":9999}
就最终的结果来看,客户端获取的数据格式都是一样的
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。两者不是同一种东西。
jsonp是一种跨域方法
json单纯的是一种数据格式。
之所以很多人都会理解错误,是因为在jquery中都是datatype....
jsonp返回的其实是一个函数的调用,传入了一个参数,这个参数就是真正需要获取到的数据,而json就单纯的指代这个数据。
jsonp传送回来的应该是字符串的格式,回调函数得到的可能是这个字符串eval(猜的)后的数据
jsonp其实返回的是一个JS函数调用代码,把返回的数据和客户端能调用的函数名拼接在一起,放到浏览器环境下,去执行而得到最终的服务端数据,也就是jsonp是一种json数据的传输方式而不是格式
而json是一个数据格式
例如
只要getList返回的内容为_jsonp({"a":"1234","b":9999});
那么客户端就能得到结果数据 {"a":"1234","b":9999}
就最终的结果来看,客户端获取的数据格式都是一样的