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

发布时间 - 2026-01-11 00:58:11    点击率:

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

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

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

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

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

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

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


# jQuery  # JSONP  # 跨域  # 获取数据  # 轻松搞定jQuery+JSONP跨域请求的解决方案  # 使用jquery的jsonp如何发起跨域请求及其原理详解  # 原生js jquery ajax请求以及jsonp的调用方法  # 关于jQuery.ajax()的jsonp碰上post详解  # jQuery中JSONP的两种实现方式详解  # 浅谈JQuery+ajax+jsonp 跨域访问  # 解决jQuery使用JSONP时产生的错误  # 用jQuery与JSONP轻松解决跨域访问的问题  # jquery ajax jsonp跨域调用实例代码  # jQuery使用jsonp实现百度搜索的示例代码  # 种方法  # 回调  # 转换工具  # 默认为  # 操作技巧  # 是在  # 相关内容  # 感兴趣  # 给大家  # 三种  # 自定义  # 更多关于  # 来实现  # 所述  # 几款  # 程序设计  # 自动生成  # 再为  # 选择器  # 讲述了 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 详解jQuery中的事件  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  如何在IIS中新建站点并配置端口与IP地址?  Swift中swift中的switch 语句  lovemo网页版地址 lovemo官网手机登录  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Swift中switch语句区间和元组模式匹配  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  Laravel如何生成URL和重定向?(路由助手函数)  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  如何批量查询域名的建站时间记录?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  EditPlus中的正则表达式实战(5)  JavaScript如何操作视频_媒体API怎么控制播放  网站制作壁纸教程视频,电脑壁纸网站?  JavaScript如何实现错误处理_try...catch如何捕获异常?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  如何用PHP快速搭建高效网站?分步指南  php结合redis实现高并发下的抢购、秒杀功能的实例  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  如何在建站主机中优化服务器配置?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel如何使用.env文件管理环境变量?(最佳实践)  如何快速搭建二级域名独立网站?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel如何保护应用免受CSRF攻击?(原理和示例)  深入理解Android中的xmlns:tools属性  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  如何在香港免费服务器上快速搭建网站?  Python文件流缓冲机制_IO性能解析【教程】  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel怎么在Blade中安全地输出原始HTML内容  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  网站优化排名时,需要考虑哪些问题呢?  如何在Windows服务器上快速搭建网站?  Laravel如何自定义错误页面(404, 500)?(代码示例)  Laravel中的Facade(门面)到底是什么原理  Java类加载基本过程详细介绍  java获取注册ip实例  javascript中的数组方法有哪些_如何利用数组方法简化数据处理