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

 更新时间:2017年05月04日 11:19:25   作者:yhdsir  
这篇文章主要介绍了jQuery使用JSONP实现跨域获取数据的三种方法,结合实例形式对比分析了jsonp跨域获取数据的3种常用操作技巧,需要的朋友可以参考下

本文实例讲述了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.jb51.net/code/json

JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat

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

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

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

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

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

相关文章

  • 使用JQuery和s3captche实现一个水果名字的验证

    使用JQuery和s3captche实现一个水果名字的验证

    大家登陆各种网站见到的验证码应该无外乎数字,字母和汉字。有没有见识过使用水果名字和水果图片来验证客户端不是个机器人吗?
    2009-08-08
  • jQuery插件Timelinr 实现时间轴特效

    jQuery插件Timelinr 实现时间轴特效

    时间轴是依据时间顺序,把一方面或多方面的事件串联起来,形成相对完整的记录体系,再运用图文的形式呈现给用户,本文给大家收集了互联网上的效果比较不错的一款,分享给大家
    2015-10-10
  • jQuery Tree Multiselect使用详解

    jQuery Tree Multiselect使用详解

    这篇文章主要为大家详细介绍了jQuery Tree Multiselect的使用方法,这个插件允许用户以树型的形式来呈现列表复选框的选择,多用于权限管理中用于分配不同的权限,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • JQuery实现动态漂浮广告

    JQuery实现动态漂浮广告

    这篇文章主要为大家详细介绍了JQuery实现动态漂浮广告,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • jquery.post用法示例代码

    jquery.post用法示例代码

    使用ajax在前端验证是否执行某个操作,下面为大家介绍下jquery.post的具体使用
    2014-01-01
  • jQuery三级下拉列表导航菜单代码分享

    jQuery三级下拉列表导航菜单代码分享

    这篇文章主要为大家详细介绍了jQuery三级下拉列表导航菜单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-08-08
  • 基于jQuery实现定位导航位置效果

    基于jQuery实现定位导航位置效果

    这篇文章主要为大家详细介绍了基于jQuery实现定位导航位置效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • jquery删除数据记录时的弹出提示效果

    jquery删除数据记录时的弹出提示效果

    这篇文章主要介绍了jquery实现的删除数据记录时的弹出提示效果,需要的朋友可以参考下
    2014-05-05
  • 推荐10 个很棒的 jQuery 特效代码

    推荐10 个很棒的 jQuery 特效代码

    本文给大家汇总介绍了10个非常实用,也非常简单的jquery特效,基本上项目中都可以用到,推荐给大家,有需要的小伙伴可以参考下。
    2015-10-10
  • jquery mobile界面数据刷新的实现方法

    jquery mobile界面数据刷新的实现方法

    下面小编就为大家带来一篇jquery mobile界面数据刷新的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05

最新评论