2013-06-19 89 views
1

我正在使用Rails,並且遇到ajax post數據調用問題。它正在工作,數據以db輸入,但SUCCESS函數不起作用,因爲成功函數中的警報函數沒有觸發。Rails,Ajax,Post Function,Jquery

此外我想添加評論到我的文章沒有刷新整個頁面。

AJAX代碼如下所示:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('form').submit(function() { 
     $.ajax({ 
      url: '/comments/create', 
      type: "POST", 
      dataType: 'json', 
      processData: false, 
      success: function (msg) { 
       alert(msg); 
      }, 
      error: function (xhr, status) { 
       alert(xhr.error); 
      } 
     }); 
    }); 
}); 
</script> 

和控制器代碼:

def create 
    puts 'params', params.inspect 
    @post = Post.find(params[:post_id]) 
    @comment = @post.comments.new(params[:comment]) 
    respond_to do |format| 
     if @comment.save 
      format.html { redirect_to(@post, :notice => 'Thanks for comment.') } 
      format.json { render json => @post, :msg=>"comment oK" } 
     else 
      format.html { render :action => "new" } 
      format.json { render :xml => @comment.errors, :msg=>"comment oooK", :status => :unprocessable_entity } 
     end 
    end 
end 

此代碼工作正常把數據上傳到創建功能,創建(職位?)的條目分貝。但是我想在「成功」時返回警報函數中的數據,但是在成功函數中警報不工作並且錯誤函數中的警報正在觸發。

+0

'錯誤:'返回什麼錯誤? –

+0

試試這些答案它的工作對我來說http://stackoverflow.com/questions/7237720/jquery-post-to-rails –

+0

嗨,我是新的軌道可能我知道如何將數據存儲到數據庫的過程與Ajax調用哪個.html.erb文件我應該寫這個調用以及我需要在路由中定義的內容。正如我所提到的,我是新手,它會幫助我很多。我在new.html.erb中創建了一個ajax調用,但它不起作用 – user2083041

回答

2

嘗試:

$('form').submit(function() 
    { 
    var myForm = $('form').serialize(); 
     $.ajax 
     ({ 
      url:'/comments/create', 
      type:"POST", 
      dataType:'json', 
      data: myForm, 
      processData:false, 
      success: function (msg) 
      { 
      alert(msg); 
      }, 
      error: function (xhr, status) 
      { 
      alert(xhr.error); 
      } 
     }); 
    }); 

如果這不起作用,請填寫你在你的AJAX請求跨網傳送的內容。使用Chrome控制檯或Firebug在此處檢查並粘貼POST結果。

+0

這不起作用。我發送表單數據在我的ajax請求和數據插入數據庫但成功功能不執行 – user1014473