我所理解的json和jsonp

一,json

json是什么我就不过多阐述,我们利用ajax很多时候都是拿到json格式数据,然后结合dom显示到页面到中,所以json是一种数据格式,并且我们可以把他的形态写出来:

var jsondata=[
    {'aa':111,'bb':111111},
    {'aa':222,'bb':111111},
    {'aa':333,'bb':111111},
    {'aa':444,'bb':111111},
    {'aa':555,'bb':111111},
    {'aa':666,'bb':111111},
    {'aa':777,'bb':111111},
    {'aa':888,'bb':111111},
    {'aa':999,'bb':111111},
    {'aa':123,'bb':111111},
    {'aa':456,'bb':111111},
    {'aa':789,'bb':111111},
    {'aa':987,'bb':111111},
    {'aa':654,'bb':111111},
    {'aa':321,'bb':111111},
    {'aa':556,'bb':111111},
    {'aa':223,'bb':111111},
    {'aa':112,'bb':111111},
    {'aa':889,'bb':111111},
    {'aa':778,'bb':111111},
    {'aa':998,'bb':111111},
    {'aa':447,'bb':111111},
    {'aa':852,'bb':111111},
    {'aa':741,'bb':111111},
    {'aa':963,'bb':111111},
    {'aa':369,'bb':111111},
    {'aa':258,'bb':111111},
    {'aa':147,'bb':111111},
    {'aa':753,'bb':111111},
    {'aa':159,'bb':111111},
];

看到庐山真面目,我们操作他是非常容易的,这就是json,数据的一种格式。

二,jsonp

多了个屁(p),这个就不是格式了,而是一种手段。

我们肯定听闻jsonp跨域请求,我们实际中有没有用过,其实我们在使用谷歌和百度的静态jq类库是jsonp的处理(我不知道对不对)。

看下面的处理:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>jsonp</title>
    <style type="text/css">
/*reset*/
*{ padding:0; margin:0}
body{ height: 100%; width: 100%; font-size:12px; color:#333;}
ul{ list-style:none;}
/*demo*/
</style>
</head>
<body>
<div id="jj">jsonp</div>
</body>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
 alert($("#jj").html());
});
</script>
</html>

我们引用百度的静态库,我们发现和在本地使用jq类库一样,都可以处理,百度的js文件被使用就是跨域了。

进一步,如果这个js文件里面存放了我们json的数据,我们拿到这个js文件其实也就跨域拿到了里面的数据去使用。

所以说jsonp是一种技术手段,利用了.js文件的跨域性,来实现各种处理。

 

你可能感兴趣的:(jsonp,json,JS跨域请求)