2011-02-02 175 views
0
jQuery('input').live('click',function(e){ 
    $.getJSON(
     "/json.php", 
     function(data){ 
      the_name = data.name; 
     } 
    ); 

}); 

當我們按下時,它應該做一個json查詢。Ajax「加載資源失敗」

它會給出錯誤。

在谷歌瀏覽器控制檯:

的特性 '名' 在Firefox控制檯:

奇怪的是,當我打開http://site.com/json.php,瀏覽器給了我像一個正常的JSON代碼: {"name":"Mary"}。它用php編碼json_encode();

什麼問題?

+0

「site.com」上的腳本位置?您無法進行跨域的Ajax請求。 http://en.wikipedia.org/wiki/Same_origin_policy – 2011-02-02 20:07:27

+0

是,則該相同的位置 – James 2011-02-02 20:38:22

回答

1

也許你的JSON字符串是不正確的:

嘗試

$.get("/json.php", function(data) {alert(data)}); 

如果你看到你的數據在警告框嘗試:

$.get("/json.php", function(data) { 
    var obj = $.parseJSON(data); 
    alert(obj.name) 
}); 
0

您的json.php腳本沒有設置Content-Type: application/json HTTP標頭?

+0

它具有報頭( '內容類型:應用/ JSON;字符集= UTF-8'); – James 2011-02-02 20:10:12

+0

@快樂,那麼一切似乎都很好。這很奇怪。 `FireBug`在響應中顯示JSON標籤嗎? – 2011-02-02 20:11:00

0

最多可以裝入Firebug和檢查要求,使用控制檯進行響應。確保請求得到正確發送,並且來自服務器的響應格式爲正確的JSON。

相關問題