Skip to content

[js] 第104天 请说说json和jsonp的区别? #998

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
haizhilin2013 opened this issue Jul 28, 2019 · 7 comments
Open

[js] 第104天 请说说json和jsonp的区别? #998

haizhilin2013 opened this issue Jul 28, 2019 · 7 comments
Labels
js JavaScript

Comments

@haizhilin2013
Copy link
Collaborator

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

@haizhilin2013 haizhilin2013 added the js JavaScript label Jul 28, 2019
@nowherebutup
Copy link

  • json: 轻量级的数据格式
  • jsonp: 解决跨域的一种方式

@HCLQ
Copy link

HCLQ commented Jul 29, 2019

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>

@LinStan
Copy link

LinStan commented Jul 29, 2019

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

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

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

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

@EragonBubble
Copy link

json

一种轻量级的数据交换格式

jsonp

一种实现跨域的方式

@seho-dev
Copy link

seho-dev commented Dec 4, 2019

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

关于jsonp:

1. 

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

@cielaber
Copy link

jsonp是解决跨域的方式,通过动态生产script获取目标数据,而json是一种跨平台通用数据格式,两者可以说没有联系。

@xiaoqiangz
Copy link

json是数据格式,jsonp是解决跨域的一种方式,通过动态script来获取数据,只支持get请求。 两者之间没有任何联系

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js JavaScript
Projects
None yet
Development

No branches or pull requests

8 participants