jQuery ajax读取json文件的方法示例代码
笨牛网在进行站长工具开发的过程中遇到需要使用jQuery ajax读取json文件的问题,我们在对淘宝IP库返回的JSON数据进行处理的时候需要用到AJAX来加快加载速度。因此有了这个项目
我们通过JQuery来读取服务器上一个PHP文件返回的JSON信息,并循环处理显示出来
其中PHP文件是对访客IP进行识别,并调用淘宝IP库接口判断归属地,因为我们服务器在美国,服务器访问淘宝IP库速度有点慢,因此如果直接用PHP代码输出,可能页面打开会比较慢,因此需要用到AJAX请求并输出的方法
PHP文件如下:
<?php
$ipzhenshi = get_real_ip();
?>
<?php
function get_real_ip(){
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown'))
{$ip = getenv('HTTP_CLIENT_IP');}
elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown'))
{$ip = getenv('HTTP_X_FORWARDED_FOR');}
elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown'))
{$ip = getenv('REMOTE_ADDR');}
elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown'))
{$ip = $_SERVER['REMOTE_ADDR'];}
return preg_match("/[\d\.]{7,15}/", $ip, $matches) ? $matches[0] : false;
}
?>
<?php
$ip = $ipzhenshi; //获取IP
//通过淘宝IP接口查询IP归属地
$get_ipquery = "http://ip.taobao.com//service/getIpInfo.php?ip=$ip";
//CURL
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$get_ipquery);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER,0);
$content = curl_exec($ch);
curl_close($ch);
echo $content;
?>输出的JSON格式如下:
{"code":0,"data":{"country":"\u4e2d\u56fd","country_id":"CN","area":"\u534e\u4e1c","area_id":"300000","region":"\u798f\u5efa\u7701","region_id":"350000","city":"\u53a6\u95e8\u5e02","city_id":"350200","county":"","county_id":"-1","isp":"\u7535\u4fe1","isp_id":"100017","ip":"120.41.124.11"}}
只要将这个JSON取值出来就能实现需要的效果
因此用这个案例来讲解jQuery ajax读取json文件的方法
我们主要用到三种
1、ajax获取json数据并直接显示的实现代码
<script src = "https://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script>
<div id="ok"></div>
<script>
$(function () {
$.ajax({
type: "POST",
dataType: "json",
url: "./ip-query.php",
success: function (result) {
var str = "";
$.each(result,function(index,obj){
str = "国家:" + obj["country"] + "<br>";
str += "省份:" + obj["region"] + "<br>";
str += "城市:" + obj["city"] + "<br>";
});
$("#ok").append(str);
}
});
});
</script>
2、$.getJSON获取json数据并直接显示的实现代码
<script src = "https://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script>
<div id="ok"></div>
<script>
$(function(){
$.getJSON("./ip-query.php",function(data){
var $jsontip = $("#ok");
var strHtml = "";//存储数据的变量
$jsontip.empty();//清空内容
$.each(data,function(infoIndex,info){
strHtml += "IP:" + info["ip"];
strHtml = "国家:" + info["country"];
strHtml += "城市:" + info["city"];
strHtml += "省份:" + info["region"] + "<br>";
strHtml += "<hr>"
})
$jsontip.html(strHtml);//显示处理后的数据
})
})
</script>
3、点击按钮后才读入JSON数据
<script src = "https://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script>
<script type = "text/javascript" >
$(function (){
$("#btn").click(function () {
$.getJSON("./ip-query.php", function (data){
var $jsontip = $("#jsonTip");
var strHtml = "123";
//存储数据的变量
$jsontip.empty();
//清空内容
$.each(data, function (infoIndex, info){
strHtml = "国家:" + info["country"];
strHtml += "城市:" + info["city"];
strHtml += "省份:" + info["region"] + "<br>";
strHtml += "<hr>"
})
$jsontip.html(strHtml);
//显示处理后的数据
})
})
})
</script>
</head>
<body>
<div id="divframe">
<div class="loadTitle">
<input type="button" value="获取数据" id="btn"/>
</div>
<div id="jsonTip">
</div>
</div>顶(2)
踩(0)
- 最新评论
