2011-03-20 41 views
5

想象我運行此:如何從ajax/jquery獲取響應文本?

 $.ajax({ 
     type: 'POST', 
     url: '/ajax/watch.php', 
     data: {'watch':'aukcia', 'id':aukciaID}, 
     complete: function(responseText){ 
      alert(responseText); 
     } 
    }); 

裏面/ajax/watch.php,讓我們說我有這樣的:

echo 'this is what I want'; 

以及警報(responseText的)返回:

[object Object] 

而不是我需要的文本字符串。 請幫忙嗎?

+0

確保你返回純文本來自你的PHP文件。 – JohnP 2011-03-20 05:17:20

+0

100%確定我是:/ – 2011-03-20 05:19:08

回答

12

看起來像你的jQuery返回XMLHttpRequest對象,而不是你的迴應。

如果是這樣的話,你應該問其responseText屬性,像這樣:

$.ajax({ 
    type: 'POST', 
    url: '/ajax/watch.php', 
    data: {'watch':'aukcia', 'id':aukciaID}, 
    complete: function(r){ 
     alert(r.responseText); 
    } 
}); 

但是,如果不工作,你可能是實際接收的JSON響應,以及[object Object]你看到可能是您的瀏覽器對您的JSON響應的表示。

您應該能夠通過瀏覽對象屬性來檢查其內容。但是,如果你願意,你也可以告訴jQuery的不能解析你的JSON響應,通過包括您的呼叫dataType: 'text'

$.ajax({ 
    type: 'POST', 
    url: '/ajax/watch.php', 
    data: {'watch':'aukcia', 'id':aukciaID}, 
    dataType: 'text', 
    complete: function(data){ 
     alert(data); 
    } 
}); 

欲瞭解更多信息,請參見:http://api.jquery.com/jQuery.ajax/

+0

謝謝,這工作!那麼在這種情況下什麼是「r」? 「回覆」或什麼的簡稱? (只是好奇) – 2011-03-20 05:22:24

+1

「r」只是一個javascript對象。你可以將它命名爲任何你想要的...... – pokiman 2011-03-20 05:24:35

+0

謝謝,這兩件作品中的至少一件(後者)。前者不是。 – 2011-03-20 05:29:15