论坛首页 编程语言技术论坛

Rails关于判断request请求类型的一个bug

浏览 1367 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2009-10-16   最后修改:2009-10-16
def ajax_test
    if request.xhr?
     render :update do |page|
        page.alert("xhr");
      end
    elsif request.post?
     render :update do |page|
        page.alert("post");
      end
    end
end

页面上是表单发送一个ajax请求:
<% form_remote_tag :url => {:action => "ajax_test", :id => @user }, :before => "$('submit_btn').disable();$('loading').show()"  do %>
<% end %>

测试结果是弹出xhr,很正确!不过....
def ajax_test
    if request.post?
     render :update do |page|
        page.alert("post");
      end
    elsif request.xhr?
     render :update do |page|
        page.alert("xhr");
      end
    end
end

测试的结果是post。

bug吧。。

我的rails版本是rails 2.0.2 (都有点不好意思拿出来了... )

你们看一下新版本会有这个bug吗?
   发表时间:2009-10-16   最后修改:2009-10-16
佩服你直接质疑是Rails BUG的勇气, 但不得不告诉你, 这是你的问题.

 
  # Generates:
  #      <form action="/some/place" method="post" onsubmit="new Ajax.Request('',
  #      {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;">
  form_remote_tag :html => { :action =>
    url_for(:controller => "some", :action => "place") }
0 请登录后投票
   发表时间:2009-10-16  
<%=  link_to_remote "post", {:url => { :action => "ajax_test"} ,:method=>:get  } %>
<%=  link_to_remote "get", {:url => { :action => "ajax_test" } ,:method=>:post } %>



  def ajax_test
    if request.xhr?
      render :update do |page|
        if request.post?
          page.alert("post");
        end
        if request.post?
          page.alert("get");
        end
      end
    end
  end
  
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics