您的位置:首页 > Web前端 > JavaScript

json与jsonp

2014-01-28 15:36 120 查看
最近需要写jsonp提供服务回调,于是仔细研究了一下json与jsonp,简单总结如下:

1、json是一种数据格式,而jsonp是一种数据交换协议,二者没有本质联系。只不过jsonp以callback(data);的方式返回数据时,data的数据格式一般是json格式的。

2、jsonp是为了来解决跨域数据交互使用的达成一致默契的非官方的协议。

3、jsonp的使用如下:

1)服务端提供接收的服务,返回callback(data);格式。

例如服务端提供url:http://xxxxxxxxxxxxxxx?jsonp=callback

该url返回json数据,callback({"name":"color","sex":"男"});

2)客户端引入服务端的服务地址,带上callback参数。

例如客户端引用服务端的地址:<script type="text/javascript" src="http://xxxxxxxxxxx?jsonp=callback" />

然后定义callback的脚本方法:

function callback(data){

alert(data.name);

}

即可将color显示出来。

4、ajax和jquery都对jsonp进行了支持。

1)ajax的写法:

$.ajax({

dataType: 'jsonp',

data: xxx

jsonp: 'jsonp_callback',

url: xxx

success: function () {

......

},

});

2)jquery的写法:

$.getJSON("http://xxxxxxxx?jsoncallback=?",

function(data){

$.each(data, function(i,n){

......

});

}

);

jsoncallback=?,其中?会自动替换为function(data)函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: