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


Posted in jQuery onSeptember 23, 2017

通过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 。

jQuery 相关文章推荐
jQuery实现的手风琴侧边菜单效果
Mar 29 jQuery
jQuery tip提示插件(实例分享)
Apr 28 jQuery
文本溢出插件jquery.dotdotdot.js使用方法详解
Jun 22 jQuery
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
Aug 04 jQuery
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 jQuery
将jquery.qqFace.js表情转换成微信的字符码
Dec 01 jQuery
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 jQuery
jQuery操作选中select下拉框的值代码实例
Feb 07 jQuery
jQuery实现获取多选框的值示例
Feb 07 jQuery
jQuery HTML css()方法与css类实例详解
May 20 jQuery
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
Mar 31 jQuery
jQuery实现table中两列CheckBox只能选中一个的示例
Sep 22 #jQuery
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
Sep 22 #jQuery
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 #jQuery
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 #jQuery
jQuery实现可兼容IE6的滚动监听功能
Sep 20 #jQuery
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 #jQuery
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 #jQuery
You might like
php分页示例代码
2007/03/19 PHP
php解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
javascript 写类方式之五
2009/07/05 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
JS实现的缓冲运动效果示例
2018/04/30 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
python实现的简单RPG游戏流程实例
2015/06/28 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
利用CSS3的线性渐变linear-gradient制作边框的示例
2016/06/02 HTML / CSS
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
什么是Smart Navigation?
2016/07/03 面试题
物流合作计划书
2014/01/10 职场文书
教师党员公开承诺书
2014/03/25 职场文书
初中家长寄语
2014/04/02 职场文书
我爱我校演讲稿
2014/05/21 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
综合实践活动报告
2015/02/05 职场文书
羊脂球读书笔记
2015/06/30 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS
使用Python解决图表与画布的间距问题
2022/04/11 Python
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android