第104天 请说说json和jsonp的区别?
json是一种数据结构
jsonp是一种跨域技术:
跨域是后端收到了请求并处理返回给前端,但浏览器发现跨域了抛出错误中止了请求,
因为script标签支持跨域运行, 后端根据前端请求动态生成*.js文件,前端构造script标签加载js文件,Js文件动态执行函数,将数据注入
例子:
前端发送请求:url: xxx/xxx?jsonpCallBack=_callback123&&jsonpId = 123
前端动态在window下构造函数
window._callback123=(data) => // dosomething
后端构造js文件, 123.js
window._callback123({ userName: 'xxxx' })
前端动态插入<script src="xxxx/xxx/123.js"></script>
json是一种数据类型,一般前后端之间传递数据是通过json类型来实现的。
jsonp是一种用于跨域的技术。
jsonp可以跨域的原因大致如下:script标签可以实现跨域,而且可以跨域执行js文件,因此可以插入script标签来引入js文件,通过动态生成js文件,客户端通过执行js文件中的函数,获取返回值来得到需要的数据。
优点是兼容性较佳,支持服务器和浏览器的双向通信,缺点是只支持get请求。
一种轻量级的数据交换格式
一种实现跨域的方式
json是一个轻量级数据格式,jsonp是一种跨域解决方案
关于jsonp:
1.
get请求
2.
基于script标签
3.
不受浏览器同源限制
Most helpful comment
json是一种数据类型,一般前后端之间传递数据是通过json类型来实现的。
jsonp是一种用于跨域的技术。
jsonp可以跨域的原因大致如下:script标签可以实现跨域,而且可以跨域执行js文件,因此可以插入script标签来引入js文件,通过动态生成js文件,客户端通过执行js文件中的函数,获取返回值来得到需要的数据。
优点是兼容性较佳,支持服务器和浏览器的双向通信,缺点是只支持get请求。