javascript - 我可以将一个 javascript 请求重定向到另一个 javascript 操作吗?

标签 javascript ruby-on-rails firefox

我有一个评论 Controller ,其中包含索引和创建操作。这两个操作都响应 html 和 js 格式。

每当我通过 ajax 收到创建请求时,我想添加新评论,然后重定向到 index.js,这样屏幕上的评论就会更新,而无需重新加载页面。

这种事情在 Chrome 中完美运行。但是每当我在 Firefox 或 IE 中尝试这个时,结果都是来自 create.js 的重定向落在了 index.html 中......

即使我强制重定向为 js:

redirect_to polymorphic_path([@commentable, :comments]), :format => 'js'

它出现在 Firefox 和 IE 的 format.html 中。

知道这里会发生什么吗?

最佳答案

浏览器以不同方式处理 302 请求的方式存在各种问题。有些丢失了请求类型,有些丢失了请求方法(示例工单:http://trac.tools.ietf.org/wg/httpbis/trac/ticket/160)。

我建议您在使用 JS 时不要重定向到新的 URL,您只需呈现相同的操作即可。所以像这样:

class CommentsController < ApplicationController
  def index 
    setup_for_index
    respond_to :html, :js
  end

  def create
    # Creation stuff...
    respond_to do |format|
      format.html {redirect_to :action => :index}
      format.js do
        setup_for_index
        render :action => :index
      end
    end
  end

  private

  def setup_for_index
    @comments = ...
  end
end

关于javascript - 我可以将一个 javascript 请求重定向到另一个 javascript 操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3601218/

相关文章:

html - Svg 数字 - 需要缩放和翻译,Chrome 和 Firefox 之间的区别

Java 小程序在 Firefox 中停止工作,在 IE 中工作正常

javascript - 较大的YouTube视频小书签

javascript - Jquery单选复选框问题

javascript - Vimeo 不响应 iOS 应用程序中的 Javascript

ruby-on-rails - Rails回形针如何使用ImageMagick的滤镜选项?

ruby-on-rails - 在 Ruby on Rails 中,如何为 ActiveRecord 对象的 member_of 成员分配默认值?

javascript - 下拉菜单 onclick 回到网页顶部

javascript - 是否可以在模式对话框中超链接图像标签

javascript - jQuery:如何根据 URL 附加到特定列表