首页 > 编程 > JavaScript > 正文

jQuery使用JSONP实现跨域获取数据的三种方法详解

2019-11-19 16:40:07
字体:
来源:转载
供稿:网友

本文实例讲述了jQuery使用JSONP实现跨域获取数据的三种方法。分享给大家供大家参考,具体如下:

第一种方法是在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 .')'; //返回格式,必需?>

PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:

在线JSON代码检验、检验、美化、格式化工具:
http://tools.VeVB.COm/code/json

JSON在线格式化工具:
http://tools.VeVB.COm/code/jsonformat

在线XML/JSON互相转换工具:
http://tools.VeVB.COm/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.VeVB.COm/code/jsoncodeformat

在线json压缩/转义工具:
http://tools.VeVB.COm/code/json_yasuo_trans

更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery操作json数据技巧汇总》、《jQuery form操作技巧汇总》、《jQuery常用插件及用法总结》、《jQuery扩展技巧总结》、《jQuery表格(table)操作技巧汇总》及《jquery选择器用法总结

希望本文所述对大家jQuery程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表