JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码

发布时间 - 2026-01-11 03:23:17    点击率:

通过JQuery可以跨域获取JSON数据,但必须弄清楚的是,JQuery不可以跨域获取任意JSON格式的数据,必须要通过服务端输出特定的针对JQuery跨域读取的JSON数据。你可能目前对此仍然毫无了解,没关系,本文将以最简单易懂的方式介绍这个技术,相信人人都容易读懂,并能够实际应用。

JQuery获取同域的JSON数据

首先引用jQuery库文件:

<script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script>

jQuery代码:

var url="http://localhost:8000/user.php";
$(function(){
 $.getJSON(url,function(data){
 alert (data.name);
})
});

服务器代码(PHP):

<?php 
header('Content-Type:text/html;Charset=utf-8'); 
$arr = array( 
 "name" => "xiaoming", 
 "pass" => "123456"
); 
echo json_encode($arr); 
?>

服务器返回字符串:

{"name":"xiaoming","pass":123456}

JQuery获取跨域的JSON数据

首先引用jQuery库文件:

<script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script>

jQuery代码:

var url="http://localhost:8000/user.php?jsoncallback=?";
$(function(){
 $.getJSON(url,function(data){
 alert (data.name);
})
});

服务器代码(PHP):

<?php 
header('Content-Type:text/html;Charset=utf-8'); 
$arr = array( 
 "name" => "xiaoming", 
 "pass" => "123456"
); 
echo $_GET['jsoncallback']."(".json_encode($arr).")"; 
?>

服务器返回字符串(需要传入参数“jsoncallback”):

jQuery19003894091040769696_1505708469340({"name":"xiaoming","pass":123456})

说明,jQuery传入值每次都不一样。

JQuery获取同域和跨域JSON数据的区别

从上述两个例子看到,JQuery获取同域和跨域JSON数据的区别有两点:

1)jQuery写法不同,跨域时要多加一个参数“jsoncallback=?”

2)服务器端返回字符串的写法不同,跨域时需要用到“'jsoncallback'”的传入值,构造的字符串格式是:jsoncallback传入值(原JSON字符串),注意要用括号把原JSON字符串包住。

总结

通过本文介绍,大家都应该明白了,要jQuery跨域读取JSON数据,首先需要在服务器端构造一个特殊的JSON字符串,否则是读取不了的,好在,构造方法十分简单,文中例子一看便懂。

jQuery + Ajax 获得跨域JSON数据

前面的例子用的是 $.getJSON 来获得跨域JSON数据,其实我们用 $.ajax 的方法也同样可以的。

首先引用jQuery库文件:

<script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script>

jQuery代码:

<script type="text/javascript"> 
$(function(){ 
 $.ajax({ 
 type: 'get', 
 url: 'http://localhost:8000/user.php?jsoncallback=?', 
 dataType: 'jsonp', 
 jsonp: "jsoncallback", 
 success: function(data) { 
  alert("用户名:"+ data.name+" 密码:"+ data.pass); 
 }
 }); 
}) 
</script>

特别注意,dataType 是 jsonp 而不是 json 。


# $.ajax  # $.getJSON  # JSON  # jquery $.getJSON()跨域请求  # jquery的ajax和getJson跨域获取json数据的实现方法  # php jq jquery getJSON跨域提交数据完整版  # 通过jquery的$.getJSON做一个跨域ajax请求试验  # jquery ajax结合thinkphp的getjson实现跨域的方法  # jQuery中getJSON跨域原理的深入讲解  # 的是  # 要用  # 都不  # 大家都  # 则是  # 不可以  # 将以  # 人人都  # 最简单  # 时要  # 多加  # 弄清楚  # 服务端  # 读懂  # 实际应用  # 时需  # 而不是  # 有两点  # 没关系  # 对此 


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


相关推荐: Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  香港服务器建站指南:免备案优势与SEO优化技巧全解析  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Python3.6正式版新特性预览  如何快速搭建高效简练网站?  Laravel如何优化应用性能?(缓存和优化命令)  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  JavaScript实现Fly Bird小游戏  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  C#如何调用原生C++ COM对象详解  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  如何正确选择百度移动适配建站域名?  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  javascript日期怎么处理_如何格式化输出  非常酷的网站设计制作软件,酷培ai教育官方网站?  Laravel如何使用Livewire构建动态组件?(入门代码)  Python文件操作最佳实践_稳定性说明【指导】  如何快速选择适合个人网站的云服务器配置?  java中使用zxing批量生成二维码立牌  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  如何在阿里云完成域名注册与建站?  微信小程序 input输入框控件详解及实例(多种示例)  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  怎么用AI帮你为初创公司进行市场定位分析?  Laravel集合Collection怎么用_Laravel集合常用函数详解  JavaScript如何实现继承_有哪些常用方法  JS弹性运动实现方法分析  公司门户网站制作流程,华为官网怎么做?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  青岛网站建设如何选择本地服务器?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  iOS发送验证码倒计时应用  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  免费视频制作网站,更新又快又好的免费电影网站?  Mybatis 中的insertOrUpdate操作  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  如何快速配置高效服务器建站软件?  网站制作壁纸教程视频,电脑壁纸网站?  微信推文制作网站有哪些,怎么做微信推文,急?  进行网站优化必须要坚持的四大原则  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  详解Android——蓝牙技术 带你实现终端间数据传输  如何在建站主机中优化服务器配置?  如何在阿里云香港服务器快速搭建网站?