2011-10-05 23 views
0

這是我第一次嘗試原型。我想發起一個AJAX請求,應該得到一個JSON響應並提醒。到目前爲止,我做了以下事情。如何獲取並處理原型中由ajax請求給出的json數據?

JS:

<script type="text/javascript"> 

function ajaxRequest() { 

    var url = '/ajaxresponse'; 

    new Ajax.Request(url, { 

     method: 'get', 
     onSuccess: function(transport,json) { 
      alert(json ? Object.inspect(json) : "no JSON object"); 
     },  
     onFailure: function(){ 
      alert('Something went wrong...') 
     } 
    }); 
} 

</script> 

HTML:

<a href='javascript:ajaxRequest();'>Testing AJAX</a> 

JSON來源:

function ajaxresponse() { 

    // Data 
    $data = array("New York", "New Yorkshire", "New Jersey"); 
    // encode and return json data 
    echo json_encode($data); 
} 

在點擊「測試AJAX「鏈接,我在警告框得到以下結果:

no JSON object 

任何想法?

感謝

回答

1

我沒有看到傳遞給onSuccess處理在原型任何第二個變量。看看here。只有運輸對象。所以這應該有所幫助:

... 
onSuccess: function(transport) { 
     var json = transport.responseText; 
     alert(json ? Object.inspect(json) : "no JSON object"); 
}, 
... 
+0

哦。好。它現在沒有提醒'沒有JSON對象.. ..但它提醒我整個文件與JS代碼響應..它不看JSON,我只想得到JSON的城市..在當前結果發佈在下一條評論: – Awan

+0

' <腳本類型= 「文本/ JavaScript的」> 功能ajaxRequest(){ \t變種URL = '/ ajaxresponse'; \t新的Ajax.Request(URL,{ \t \t方法: 'GET', \t \t的onSuccess:功能(運輸){ \t \t \t VAR JSON = transport.responseText; \t \t警報(JSON對象.inspect(JSON): 「沒有JSON對象」); \t \t}, onFailure處:函數(){ \t警報( '出事了......') \t} \t}); } [ 「紐約」, 「新約克郡」, 「新澤西州」]' – Awan

+0

其怪異的,什麼是警報(transport.responseText)的結果;和alert(transport.headerJSON)? –

相關問題