簡體   English   中英

如何從AJAX調用返回JSON數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM