日期:2014-05-16  浏览次数:20259 次

jQuery的JSONP的写法,相当简单
转自http://pldream.com/b/?post=72
jQuery对JSONP的支持还是相当不错的,主要有三种方法

$.getJSON
$.ajax
$.get

三种方法基本上大同小异。现在就以$.get为例

服务器端代码为:

	date_default_timezone_set('Asia/Shanghai');
	$time = date('Y-m-d H:i:s', time());
	$arr = array('name'=>urldecode($_GET['name']), 'time'=>$time);
	echo $_GET['callback'] . '(' . json_encode($arr) . ')';

一句就可以搞定了,跟普通的ajax的写法一样

$.get(_url, {name: encodeURIComponent('张三')}, function (json) {
	alert(json.name + ' : ' + json.time);
}, 'jsonp');

另外两种也贴上

function callJSONP2 (_url) {
	$.ajax(
	{
		url: _url + '?name=张三',
		dataType: 'jsonp',
		jsonp: 'callback',
		success: function (json) {
			$.each(json, function (k, v) {
				alert(k + ':' + v);
			});
		}
	});
}


function callJSONP3 (_url) {
	$.getJSON(_url + '?callback=?', {name: '张三'}, function (json) {
		$.each(json, function (k, v) {
			alert(k + ':' + v);
		});
	});
}