如何用json 与jsonp 的区别去回答你的面试官?

Posted Panax

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用json 与jsonp 的区别去回答你的面试官?相关的知识,希望对你有一定的参考价值。

常常 有面试官这样问我们,虽然用过无数次,但是回答不上岂不是尴尬,那我们浅析一下它们的区别?

1. json

JSON是一种基于文本的数据交换格式,用于描述复杂的数据,举个例子:
var nax=[
{
"id":"001",
"sex":"男",
"age":20
},
{
"id":"002",
"sex":"女",
"age":21
},
{
"id":"003",
"sex":"男",
"age":19
}]

console.log(nax[0].id); //001
console.log(nax[1].sex); //女
JSON其实应用得很广泛,不难理解,但是JSONP就很容易被误解了, 以为跟JSON一样,实际上是两个不同的东西

2. jsonp

JSONP就是一个跨域交互协议,可以理解为,JSONP约定了JSON的这个数据怎样进行传递。
跨域是指从一个域名去请求另一个域名的资源,我们知道,如果直接用AJAX请求的时候,由于浏览器同源策略的存在,很容易产生跨域问题,同源策略是指域名、协议、端口均相同,如果不同则视为跨域请求,跨域请求一律都是不行的。

想要跨域请求资源,除非我们运用js的特性:script标签中的链接可以访问跨域的js文件,于是跨域服务器可以这样做,它把客户端需要的数据动态包装成js文件然后提供给客户端请求。这种数据传递方式慢慢就形成了一种传输协议,这就是JSONP了

以上是关于如何用json 与jsonp 的区别去回答你的面试官?的主要内容,如果未能解决你的问题,请参考以下文章

json与jsonp区别浅析(json才是目的,jsonp只是手段)

json与jsonp区别浅析(json才是目的,jsonp只是手段) (转)

json和geojson有啥区别

json与jsonp区别浅析(json才是目的,jsonp只是手段)

json与jsonp区别浅析

JSON与JSONP的区别