Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails3+jquery+ajax-不要在ajax请求重定向时丢弃flash_Jquery_Ajax_Flash_Ruby On Rails 3 - Fatal编程技术网

Rails3+jquery+ajax-不要在ajax请求重定向时丢弃flash

Rails3+jquery+ajax-不要在ajax请求重定向时丢弃flash,jquery,ajax,flash,ruby-on-rails-3,Jquery,Ajax,Flash,Ruby On Rails 3,通常,如果我的请求是xhr,我会调用flash.discard。我在应用程序控制器中作为后过滤器执行此操作 但是,我不想调用flash.discard,因为我有一个ajax调用,它设置了一个flash,然后重定向到另一个页面 如何实现这一点?如果我理解正确,您需要知道响应是否是重定向。在应用程序控制器中创建after筛选器以检查响应状态 after_filter :discard_flash_message def discard_flash_message if request.xhr?

通常,如果我的请求是xhr,我会调用flash.discard。我在应用程序控制器中作为后过滤器执行此操作

但是,我不想调用flash.discard,因为我有一个ajax调用,它设置了一个flash,然后重定向到另一个页面


如何实现这一点?

如果我理解正确,您需要知道响应是否是重定向。在应用程序控制器中创建after筛选器以检查响应状态

after_filter :discard_flash_message

def discard_flash_message
  if request.xhr? and response.status == :found
    //do not call flash.discard
  end
end

如果我理解正确,您需要知道响应是否是重定向。在应用程序控制器中创建after筛选器以检查响应状态

after_filter :discard_flash_message

def discard_flash_message
  if request.xhr? and response.status == :found
    //do not call flash.discard
  end
end

当存在js重定向时,会丢弃Flash,因为js重定向实际上不是重定向。我正在做一个js重定向window.location=。此外,如果我根据xhr请求将_重定向到,闪存将被丢弃。以下是我的后过滤器代码:flash.discard if request.xhr?和回应!=:当存在js重定向时,foundFlash将被丢弃,因为js重定向实际上不是重定向。我正在做一个js重定向window.location=。此外,如果我根据xhr请求将_重定向到,闪存将被丢弃。以下是我的后过滤器代码:flash.discard if request.xhr?和回应!=:建立