[英]How to return JSON data from an AJAX call
我有一個從數據庫返回的JSON對象。 格式正確。 我試圖通過AJAX調用訪問其中的數據。 這是我的AJAX。
$.ajax({
url: '<?php echo site_url('find_representatives/find_rep_by_address/get_coordinates'); ?>',
dataType: 'json',
data: '',
success: function(data, status, xhr) {
alert(data);
},
error: function(xhr, status, error) {
alert(status);
}
});
我在我的數據中,因為我正在尋找所有數據。 我嘗試將'id'放在那里(我的JSON對象中有一個ID,但是當我這樣做時,該函數停止工作。當我提醒'數據'時,我得到一個對象,但我提醒'data.id'我得到'未定義。'我做錯了什么?這是我的第一個AJAX調用。該URL有效。我查了一下。
data: '{}',
這會向服務器發送一個空數據對象,並解決發送空數據(根本不包括data
)導致問題的一些問題。
我看到的另一件事是沒有設置:
contentType: "application/json",
可視化“調試”數據的一種簡單方法是包含json2.js和do(在success函數中):
alert(JSON.stringify(data));
嘗試data[0]
,看看你在警報中得到了什么...在那里我認為這會對你有所幫助
沒有足夠的信息來正確回答這個問題。
如果您嘗試使用'Alert'進行調試,那么您就遇到了麻煩。
假設您正在使用FireBug或Inspector(Chrome,Safari),請嘗試'console.log(data)'而不是'alert(data)'。
數據可以是幾種東西,通常是一個對象。 因此,警告它對你沒有太大作用,除非你先把它變成一個字符串。
您還可以使用網絡面板查看通過網絡傳輸的數據,或者您可以使用Fiddler或HTTPScoop之類的內容來確定從服務器返回的內容。
看看getJSON
。
$.getJSON(<?php echo site_url('find_representatives/find_rep_by_address/get_coordinates'); ?>, function(data) {
console.log(data);
});
此處的data
鍵是您要發送到服務器的data
鍵(如果有):
data: '',
但是回調中的data
參數是從服務器收到的:
success: function(data, status, xhr) {
alert(data);
},
error: function(xhr, status, error) {
alert(status);
}
當您使用dataType: 'json'
,您告訴jQuery您希望從服務器返回JSON。 那么,您是否從PHP輸出有效的JSON(例如,使用json_encode
)? 如果是這樣,您的代碼應該可行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.