什么是JSONP
g的缩写,是一种跨域数据请求方式。由于浏览器的同源策略限制,客户端不能直接请求跨域的数据。而JSONP利用了script标签的src属性不受同源策略限制的特性,通过动态创建script标签,向跨域的服务器请求数据,并在返回的数据中包含一个回调函数的调用,从而实现跨域数据请求。
JSONP数据的格式
JSONP数据的格式和JSON格式类似,但多了一个回调函数的调用,例如:
ctioname”:”张三”,”age”:18})
ction就是回调函数的名称,括号内是JSON格式的数据。
如何将JSONP数据转换成JSON格式
1. 手动解析
手动解析JSONP数据比较麻烦,需要截取回调函数的名称和JSON数据,然后再将JSON数据转换成JSON格式。具体步骤如下:
1)截取回调函数的名称
使用正则表达式或字符串截取函数,截取JSONP数据中回调函数的名称。
2)截取JSON数据
使用字符串截取函数或正则表达式,截取JSONP数据中包含的JSON数据。
3)将JSON数据转换成JSON格式
_decode函数将JSON数据转换成JSON格式。
2. 使用PHP库
PHP提供了一些库,可以方便地将JSONP数据转换成JSON格式。常用的库有:
ddework提供的JSON处理库,可以将JSONP数据转换成JSON格式。
fonyponentdationResponse
fonyponentdationResponsefony框架提供的JSON响应类,可以将JSONP数据转换成JSON格式。
以上两个库的使用方法可以参考官方文档。
JSONP是一种跨域数据请求方式,可以通过动态创建script标签,向跨域的服务器请求数据。JSONP数据的格式和JSON格式类似,但多了一个回调函数的调用。将JSONP数据转换成JSON格式可以手动解析或使用PHP库。