【问题标题】:Rails , Ajax , Post Function , JqueryRails , Ajax , Post 函数 , Jquery
【发布时间】:2013-06-19 12:16:48
【问题描述】:

我正在使用 Rails 并遇到 ajax 发布数据调用问题。它正在工作并且数据已输入到 db 中,但 SUCCESS 功能不起作用,因为成功功能中的警报功能没有触发。

此外,我想在不刷新整个页面的情况下向我的帖子添加评论。

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

此代码可以很好地将数据发布到创建函数,该函数创建(发布?)数据库的条目。但是我想在“成功”时返回警报函数中的数据,但是成功函数中的警报不起作用并且错误函数中的警报正在触发。

【问题讨论】:

  • error: 返回什么错误?
  • 嗨,我是 Rails 新手,我可以知道如何使用 ajax 调用将数据存储到数据库的过程,我应该在哪个 .html.erb 文件中编写调用以及我需要在其中定义什么路线。正如我提到的,我是 Rails 的新手,这对我有很大帮助。我在 new.html.erb 中创建了一个 ajax 调用,但它不起作用

标签: ruby-on-rails ajax function post


【解决方案1】:

试试:

 $('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 结果。

【讨论】:

  • 这不起作用。我在我的 ajax 请求中发送表单数据并且数据被插入到 db 但成功函数没有执行
猜你喜欢
  • 2011-12-11
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多