jquery的$getjson調用并獲取遠程的JSON字符串問題
2024-05-06 14:20:39
供稿:網友
代碼如下:
代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(function(){
$("button").click(function(){
$.getJSON("ajax6.asp",function(data){
$("#pig").html(data.name);
});
});
});
</script>
<body>
<button>click</button>
<div id="pig"></div>
</body>
</html>
其中ajax6.asp為
代碼如下:
<%
response.Write(“{name:'peter',age:18}”);
%>
為什么獲取不了呢?,我想獲取asp的json。
解決的關鍵問題是:key和value需要雙引號,如下:
代碼如下:
response.Write(“{“”name”":”"peter”",”"age”":”"18″”}”)
jQuery中常用getJSON來調用并獲取遠程的JSON字符串,將其轉換為JSON對象,如果成功,則執行回調函數。原型如下:
jQuery.getJSON( url, [data], [callback] ) 跨域加載JSON數據。
url: 發送請求的地址
data : (可選) 待發送key/value參數
callback: (可選) 載入成功時的回調函數
主要用于客戶端獲取服務器JSON數據。簡單示例:
服務器腳本,返回JSON數據:
代碼如下:
// $.getJSON.php
$arr=array("name"=>"zhangsan", "age"=>20);
$jarr=json_encode($arr);
echo $jarr;
注意兩點:第一:在返回客戶端之前,先用PHP函數json_encode將要返回的數據進行編碼。第二:返回到客戶端用的是echo,而不是return。
下面是核心的客戶端代碼:
代碼如下:
<script language="javascript" type="text/javascript" src="./js/jquery.js"></script>
<script language="javascript" type="text/javascript">
function getjs()
{
$.getJSON("$.getJSON.php", {}, function(response){
alert(response.age);
});
}
<input type="button" name="btn" id="btn" value="test" onClick="javascript:getjs();"/>
由于在PHP中是用JSON編碼返回值,所以此處必須用getJSON去調用PHP文件,從而獲取數據。同時可以注意到,經由getJSON得到的數據已經變成了一個對象數組,可以用response.name,response.age很直觀的獲取返回值。
jquery提供了$.getJSON的方法,讓我們可以實現跨域ajax請求,但jqueryAPI上的內容實在太少,如何用$.getJSON,請求網站應該返回怎樣的數據庫才能讓$.getJSON獲取到,下面我就用一個實際例子來說明下。
后端是用php的,以下代碼主要實現的一個功能就是提供一個預約登記的接口,需要傳入的數據分別有:用戶姓名、聯系電話和地址: