Fe-interview: [js] 第104天 请说说json和jsonp的区别?

Created on 28 Jul 2019  ·  5Comments  ·  Source: haizlin/fe-interview

第104天 请说说json和jsonp的区别?

js

Most helpful comment

json是一种数据类型,一般前后端之间传递数据是通过json类型来实现的。

jsonp是一种用于跨域的技术。

jsonp可以跨域的原因大致如下:script标签可以实现跨域,而且可以跨域执行js文件,因此可以插入script标签来引入js文件,通过动态生成js文件,客户端通过执行js文件中的函数,获取返回值来得到需要的数据。

优点是兼容性较佳,支持服务器和浏览器的双向通信,缺点是只支持get请求。

All 5 comments

  • 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

一种实现跨域的方式

json是一个轻量级数据格式,jsonp是一种跨域解决方案

关于jsonp:

1.

get请求
2.
基于script标签
3.
不受浏览器同源限制

Was this page helpful?
0 / 5 - 0 ratings