您好,欢迎访问一九零五行业门户网

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

通过jquery可以跨域获取json数据,但必须弄清楚的是,jquery不可以跨域获取任意json格式的数据,必须要通过服务端输出特定的针对jquery跨域读取的json数据。你可能目前对此仍然毫无了解,没关系,本文将以最简单易懂的方式介绍这个技术,相信人人都容易读懂,并能够实际应用。
本文主要和大家介绍jquery用$.ajax或$.getjson跨域获取json数据的实现代码,需要的朋友可以参考下,希望对大家有用。
jquery获取同域的json数据
首先引用jquery库文件:
3f8c52cbbcbcc6c299791d45ce00882e2cacc6d41bbb37262a98f745aa00fbf0
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 。
相关推荐:
html中通过js获取json数据并加载实例分享
js如何获取json数组里数组长度的实例
ajax跨域请求的解决办法:使用 jsonp获取json数据
以上就是关于jquery用$.ajax或$.getjson实现跨域获取json数据的代码的详细内容。
其它类似信息

推荐信息