【问题标题】:Strange jquery post problem, wrong post url is used奇怪的jquery post问题,使用了错误的post url
【发布时间】:2009-11-25 10:21:51
【问题描述】:

我希望通过 ajax 使用 jQuery $.post 命令提交一个表单。

表格如下所示:

<form action="/wine/merlot/reviews" class="new_review" id="new_review" method="post">

jquery 调用是:

$(document).ready(function() {
  $('#new_review').submit(function() {
    $.post($(this).attr('action'), $(this).serialize(), null, 'script');
    return false;
  });
});

我在服务器上收到以下错误:

ActionController::MethodNotAllowed(只允许获取、放置和删除请求。):

根据我通过使用 firebugs 控制台进行的挖掘可以看出,问题是帖子发布到了这个 url:

/wine/merlot 代替 /wine/merlot/reviews

我一辈子都想不通为什么会这样。

【问题讨论】:

  • 我注意到,如果我在 url 中硬编码,那么事情似乎工作得很好,所以 $(this).attr('action') 一定失败了,但我不知道怎么做。
  • 奇怪。您是否尝试过使用 $.load() 或 $.ajax() 代替?

标签: ruby-on-rails jquery


【解决方案1】:

好的。原来我是个白痴。我在页面上有另一个 id 为“new_review”的 div,所以我猜它正在查看错误的元素。已重命名,现在一切正常。

【讨论】:

    【解决方案2】:

    我无法使用带有 Rails 2 的 jQuery $.post 命令通过 ajax 提交表单。

    我修改了 Ryan Bates 的 Railcast 136,改为通过 put 提交。我使用的 kludge 是检查更新操作中的 (params[:id] == 'update') 以检查此 ajax 请求。

    episode-136/store/public/javascripts/application.js

    jQuery.fn.blurWithAjax = function() {
      this.blur(function() {
          // GOOD .ajax javascript update action works even though create on Rails2 does not
           jQuery.ajax({
             type: "PUT",
             url: "/reviews/update",
             data: jQuery(this).serialize(),
             dataType: "script",
             callback: null
           });
         return false;
       })
       return this;
     };
    
    jQuery(document).ready(function() {
      jQuery("#review_content").blurWithAjax();
    });
    

    您还需要进行并行更改;

    定义创建 => 定义更新

    app/views/reviews/create.js.erb => app/views/reviews/update.js.erb

    【讨论】:

      【解决方案3】:

      不确定,但试试/wine/merlot/reviews/ 而不是/wine/merlot/reviews

      【讨论】:

        猜你喜欢
        • 2013-01-10
        • 2012-08-28
        • 1970-01-01
        • 2011-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-15
        • 1970-01-01
        相关资源
        最近更新 更多