2012-02-20 33 views
0

我遇到了一個非常奇怪的情況,這導致我瘋了。我有一個rails應用程序,它向jQuery發送一個簡單的字符串並將其打印出來。這裏是我的代碼:jQuery無法從Rails 3應用程序接收數據

的jQuery:

jQuery(document).ready(function() { 
    jQuery('.bid a').livequery('click', function() { 
     obj = jQuery(this); 
     jQuery.post(obj.attr('href'), function(data) { 
      alert(data) 
     }); 
     return false; 
    }); 
    }) 

Rails的控制器:

def send_message 
    respond_to do |format| 
     format.js do 
      @res_str = "nobids" 
      render :json => @res_str 
     end 
    end 
end 

這樣的,它工作正常,它顯示字符串 「nobids」 警報。但是,如果我想發送任何其他字符串,讓我們說「nobidss」,它會失敗!這根本沒有意義!

會發生什麼情況?

+0

在Chrome的開發人員工具的網絡控制檯中,我可以看到請求成功,代碼200正常。答案與預期一致。反正它不會在成功後調用這個函數。所有東西都在同一臺服務器上,所以我可以放棄「相同原點策略」導致這種情況(當字符串是「nobids」時它將如何成功?) – apeniche 2012-02-21 04:16:07

回答

0

我正在犯新人的錯誤!

如果您渲染:json,您必須將響應消息轉換爲json,即:@ response.to_json。

另外,在html中,href必須以.json結尾,而在控制器中,您也必須對format.json作出響應。

無論如何,我不能說出爲什麼它成功地使用字符串「nobids」。

它現在可以美麗

相關問題