本文主要介绍了jquery使用jsonp实现跨域获取数据的三种方法,结合实例形式对比分析了jsonp跨域获取数据的3种常用操作技巧,需要的朋友可以参考下,希望能帮助大家。
第一种方法是在ajax函数中设置datatype为'jsonp'
$.ajax({
datatype: 'jsonp',
url: 'http://www.a.com/user?id=123',
success: function(data){
//处理data数据
}
});
第二种方法是利用getjson来实现,只要在地址中加上callback=?参数即可
$.getjson('http://www.a.com/user?id=123&callback=?', function(data){
//处理data数据
});
第三种方法是使用getscript方法
//此时也可以在函数外定义foo方法
function foo(data){
//处理data数据
}
$.getscript('http://www.a.com/user?id=123&callback=foo');
实例演练:
index.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jsonp</title>
<script src="jquery-1.8.0.min.js"></script>
<script>
$.ajax({
type : "post",
url : "jsonp.php?name=zhaoxiace&age=30",
datatype : "jsonp",
jsonp: "callbackparam",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
jsonpcallback:"callbackfunction",//自定义的jsonp回调函数名称,默认为jquery自动生成的随机函数名
success : function(data){
console.log(data.statuscode + "/" + data.message + "/" + data.name + "/" + data.age);
},
error:function(){
alert('请求失败');
}
});
</script>
</head>
jsonp.php
<?
$data["age"] = $_get['age'];
$data["name"] = $_get['name'];
$data["statuscode"]="200";
$data["message"]="成功";
$tmp= json_encode($data); //json数据
echo $callback . '(' . $tmp .')'; //返回格式,必需
?>
相关推荐:
html5怎样进行跨域通信
jquery jsonp跨域模拟搜索引擎实例分享
原生js实现ajax与ajax的跨域请求
以上就是三种jquery使用jsonp实现跨域获取数据的方法的详细内容。