2010-12-02 80 views
3

一種奇怪的問題,希望有人能幫助我。在ajax後設置導軌會話

我想在我的rails控制器中設置一個會話,我通過jquery ajax發佈。

其常軌形成我通過AJAX

$.post($(this).attr('action'), $(this).serialize(), function(data){ 

}, 'json'); 

然而,會議似乎沒有跨Ajax調用設置其打引線控制器

def create 
    @lead = Lead.new(params[:lead]) 
    @lead.save! 

    if @lead.save 
     session[:lead] = "#{@lead.id}" 
    end 

    end 

提交。

任何人對此有什麼想法?

+0

可能相關:http://stackoverflow.com/questions/5126721/rails-not-reloading-session-on-ajax-post – igorw 2011-03-25 10:11:30

回答

0

您是否確實看到過在您的控制器中調用了創建(它是否出現在日誌中)?

順便說一句:你調用save()兩次,但這不是問題(調用save多次,如果保存成功,每次都會返回true)。

+0

是的,它被顯示在日誌中,開始POST「/ leads」爲127.0 .0.1在2010-12-02 21:23:24 +0000通過LeadsController處理#創建爲JSON – stuartchaney 2010-12-02 22:06:25

0

問題可能是因爲您使用您的本地主機,而不是一個合適的域我聽說一些瀏覽器忽略這樣的會話。

另一個問題可能是您沒有發送用於停止僞造攻擊的CSRF身份驗證令牌,現在這是默認情況下對XHR請求的一種要求,而不僅僅是形式(儘管它可能沒有使用該版本的rails您原始帖子的時間)。