JSON

JQuery用$.ajax或$.getJSON跨域获取JSON数据【实例】

字号+ 作者:H5之家 来源:H5之家 2017-10-22 09:00 我要评论( )

当前主题: 互联网络 JQuery用$.ajax或$.getJSON跨域获取JSON数据【实例】作者:Kaka时间:2017-9-18 12:28:41浏览:评论:0 通过JQuery可以跨域获取JSON数据,但必须弄清楚的是,JQuery不可以跨域获取任意JSON格式的数据,必须要通过服务端输出特定的针对JQuery

当前主题: 互联网络

JQuery用$.ajax或$.getJSON跨域获取JSON数据【实例】 作者:Kaka    时间:2017-9-18 12:28:41    浏览:    评论:0

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

JQuery获取同域的JSON数据

首先引用jQuery库文件:

<script src=""></script>

jQuery代码:

var url=":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=""></script>

jQuery代码:

var url=":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=""></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  ajax  getJSON  

加入本站QQ群(312716741),交流分享网站建设、优化、SEO技术。。。

 

  • 扩展阅读
  • 上一篇: JS获得客户端IP的方法【来自sohu的API接口】

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 如何实现 jquery json 模糊查询

      如何实现 jquery json 模糊查询

      2017-10-19 18:55

    • jQuery.parseJSON(json)将JSON字符串转换成js对象

      jQuery.parseJSON(json)将JSON字符串转换成js对象

      2017-10-13 10:00

    • 基于JSON的Ajax数据交换技术及应用

      基于JSON的Ajax数据交换技术及应用

      2017-10-09 10:00

    • jQuery调用Webservice传递json数组的方法

      jQuery调用Webservice传递json数组的方法

      2017-10-08 11:00

    网友点评