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

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 的区别去回答你的面试官?的更多相关文章

  1. Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别

    为什么要用jsonp? 相信大家对跨域一定不陌生,对同源策略也同样熟悉.什么,你没听过?没关系,既然是深入浅出,那就从头说起. 假如我写了个index页面,页面里有个请求,请求的是一个json数据(不 ...

  2. json和jsonp的区别,ajax和jsonp的区别

    json和jsonp虽然只有一个字母的区别,但是它们之间扯不上关系. json是一种轻量级的数据交换格式. jsonp是一种跨域数据交互协议. json的优点:(1)基于纯文本传递极其简单,(2)轻量 ...

  3. JSON和JSONP的区别

    先前的概念中对JSON还是比较熟悉,对JSONP不是特别的清楚,整理完相关知识发现才豁然开朗.简单的说JSON是一种数据交换格式,而JSONP是 一种非官方跨域数据交互协议.JSON是“暗号”,而JS ...

  4. json与jsonp的区别

    前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socke ...

  5. JSON跟JSONP的区别以及实战

    前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socke ...

  6. JSON和JSONP的区别,以及使用方法

    (一)场景 在拉京东城市选择的基础数据时候,遇到被服务器拒绝的情况,也就是ajax跨域问题 (二)json和jsonp 说的直白一点,在我们做ajax异步的一些功能的时候,一定会或多或少的遇到两个问题 ...

  7. json和jsonp的区别(转)

    原文链接:http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html  前言: 说到AJAX就会不可避免的面临 ...

  8. js中JSON和JSONP的区别,让你从懵逼到恍然大悟

    说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服 ...

  9. JSON和JSONP的区别及使用方法

    JSON(JavaScript Object Notation)和JSONP(JSON with Padding)虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JS ...

随机推荐

  1. 使用org-mode写cnblogs博客

    使用org-mode写cnblogs博客 */--> pre.src {background-color: #002b36; color: #839496;} pre.src {backgrou ...

  2. CF1168C

    CF1168C 从后往前扫一遍维护\(f[x][k]\)表示从开始x至少要走到那个位置才能到达一个第\(k\)位是1的数 #include<iostream> #include<cs ...

  3. vue-cli 中多个组件共用一个mt-checklist

    // html <div v-if="dataList"> <mt-popup v-model="popupVisible" position ...

  4. Pytest conftest共享数据及不同层次共享

    数据共享:在 conftest.py配置里写方 法可以实现数据共享, 不需要import导入.可 以跨文件共享 1.建立一个新的文件,文件名必须叫"conftest.py",然后写 ...

  5. python之求字典最值

    本例子求字典最小值 首先字典分为键和值 eg: {键:值} prices = { 'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20, ...

  6. LeetCode Array Easy121. Best Time to Buy and Sell Stock

    Description Say you have an array for which the ith element is the price of a given stock on day i. ...

  7. python re.I compile search

    import restring = "The quick brown fox jumps over the lazy dog."a_list = string.split()pat ...

  8. 神奇的Android Studio Template(转)

    转自:http://blog.csdn.net/lmj623565791/article/details/51592043 本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台 ...

  9. 【LeetCode】贪心

    [452] Minimum Number of Arrows to Burst Balloons [Medium] 给一堆线段,使用最少的arrow,穿过所有的线段.陈题,第一条线段的终点. Inpu ...

  10. ubuntu:beyond compare 4 This license key has been revoked 解决办法

    错误如图所示: 解决办法: (1)先用find命令找到bcompare所在位置:sudo find /home/ -name '*bcompare' ()进入 /home/whf/.config,删除 ...