2010-12-20 90 views
0

我似乎無法執行AJAX調用任何代碼或利用JSON響應。我錯過了什麼?這個調用是成功的,我可以在Firebug中看到腳本在服務器端執行正常,但我似乎無法對返回的數據做任何事情。如何利用來自AJAX調用的JSON響應數據?

review.single = { 
    id: null, 
    ip: null, 
    el: null, 
    addFlag: function(){ 
     if(this.id && foo.user_id){ 
      $.ajax({ 
       type: 'post', 
       url: '/reviews/add_flag/', 
       data: , 
       dataType: 'json', 
       success: function(data){ 
        if(data.success){ 
         this.el.text('Flagged'); 
         this.el.css({ 
          'text-indent': none, 
          backgroundColor: '#c00', 
          color: '#fff' 
         }) 
        } else { 
         $('#growl').text(data.message); 
         $('#growl').fadeIn(500).delay(5000).fadeOut(200); 
        }     
       } 
      }) 
     } 
    } 
} 

我上調用的一個響應類型此回:

{success: false, message: "You have already flagged this item."} 

理想情況下,我想能夠採取的消息,把它扔進了咆哮,並顯示它,使用success屬性作爲支票。

UPDATE:

我加入error塊;看起來是這樣的:

error: function (request, status, error) { 
    alert(request.responseText); 
} 

其結果是,我得到的是說一個警告:

{success: false, message: "You have already flagged this item."} 
+0

會發生什麼呢?此外,如果你非常粗略地提出了一個警告(數據),「你有什麼有趣的嗎? – nico 2010-12-20 00:40:04

+0

這是一件奇怪的事情:無論是「alert(data)」還是「alert('blah')」,「success」區域中的代碼似乎都不會執行。 – dclowd9901 2010-12-20 00:42:07

+0

如果'success'中沒有任何事情發生,請嘗試添加一個'error'處理程序。如果出現某種錯誤,任何迴應將被「成功」忽略。 – zsalzbank 2010-12-20 00:46:10

回答

1

想通了。

我的JSON顯然沒有正確格式化,需要將屬性包裝在"中。這向jQuery拋出了一個錯誤。感謝您的幫助,夥計們。

例子:

{"success": false, "message": "You have already flagged this item."}