成功后重定向到ajax表单

2024-04-05

我有一个带有远程 => true 的表单。 现在我的控制器看起来像:

  # POST /items
  # POST /items.json
  def create
    @item = @store.items.build(params[:item])

    respond_to do |format|
      if @item.save
        format.html { redirect_to edit_admin_item_path(@item), :flash => {:success => "#{@item.name} was successfully created."} }
        format.js { render :js => "window.location.href = ('#{edit_admin_item_path(@item)}');"}
        format.json { render json: @item, status: :created, location: @item }
      else
        format.html { render action: "new" }
        format.js { render :partial => 'fail_create.js.erb', :locals => { :ajax_errors => @item.errors.full_messages } }
        format.json { render json: @item.errors, status: :unprocessable_entity }       
      end
    end
  end

这很有效,但感觉很笨拙。它也不允许我使用闪光通知,这确实是一个悲伤的时刻。

理想情况下,我觉得我应该能够简单地使用“format.js {redirect_to...}”或检查请求标头和redirect_to。天啊!

我不确定最好的解决方案是什么。任何建议都会非常棒,提前致谢!

-- PS -- 我知道以前有人问过这个问题,但没有结果:AJAX 表单提交成功后如何重定向 https://stackoverflow.com/questions/9506445/how-to-redirect-after-a-successful-ajax-form-submission-rails-3-2。似乎有很多类似的问题存在,但没有真正的解决方案。


我认为这可能是不可能的。对 Ajax 请求的响应由 XMLHttpRequest 处理。如果返回 3xx 响应,并且 URL 具有相同来源,则 XMLHttpRequest 将遵循重定向本身。无论您如何设置标头,浏览器都无法意识到这一点。所以唯一的方法可能是用一些 Javascript 改变 window.location 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

成功后重定向到ajax表单 的相关文章

随机推荐

  • Facebook 重置“在 Facebook 上分享”链接的缓存

    我刚刚更新了我们网站的的开放图协议 我刚刚注意到 每当我分享一些链接时 旧的是 Facebook 正在解析的 但是 对于我运行的那些链接debugger https developers facebook com tools debug他们
  • 仅当 command1 在 cmd windows shell 中成功时才运行 command2

    我们如何组合 cmd shell 语言中的命令 以便仅在第一个命令成功完成时才执行第二个命令 类似以下 bash 命令 make a out a out仅在以下情况下执行make那是成功的 下列 command1 command2 应该致力
  • 读取 nul 分隔字段

    给定这个文件 printf alpha 0bravo 0charlie gt delta txt 我想将这些字段读入单独的变量中 我使用的原因 空分隔符是因为字段将包含文件路径 其中可以包含 除 null 之外的任何字符 我尝试了这些命令
  • Android 中某些相机分辨率下的不同捕获输出大小

    我正在使用 Android Camera2 API 开发一个自定义相机应用程序 您可以在手机中可用的不同相机和视频分辨率之间切换 它还提供了拍摄 1 1 方形照片的可能性 为了拍摄方形照片 我拍摄了一张正常的 4 3 照片 然后将其裁剪以保
  • GetType 返回 Int 而不是 System.Int32

    GetType ToString 返回对象的全名 我想要您通常用来实例化该对象的名称 即 int 而不是 Int32 有没有办法做到这一点 C 有许多 类型 它们实际上是 NET CLR 的关键字别名Types 在这种情况下 int是 C
  • 如果不允许任务之间共享可变状态,为什么 Rust 具有互斥体和其他同步原语?

    我的理解是 Rust 中的任务之间不可能共享可变状态 那么为什么 Rust 有这样的东西mutexes https doc rust lang org std sync struct Mutex html在语言中 他们的目的是什么 不允许在
  • 如何在asp.net core中更改Razor中的根路径〜/

    我有一个带有 Razor 的 ASP NET Core 2 1 MVC 应用程序 它广泛使用 path syntax 如果应用程序从域根运行 例如 从http localhost 5000 但是当我在非根位置运行应用程序时 例如 http
  • 错误:您需要包含一些实现 __karma__.start 方法的适配器

    我正在尝试向我的项目之一添加一些单元测试 到目前为止 我已经安装并配置了 karma 并安装了 jasmine 我的里面有一个测试文件test folder karma 服务器已启动 浏览器页面已准备就绪 但是karma run失败如下 k
  • 如何翻译$url_handlers?

    我遇到一个情况 需要翻译以下内容 url handlers对于不同的国家 因此 在英文网站上 URL 如下所示 http website com gyms boston group training http website com gym
  • curl_multi_exec:下载的一些图像丢失了一些数据/流不完整

    我已经实现了一个 PHP 函数 它检查并下载大量图像 gt 1 000 使用数组传递给它 使用 PHPcurl multi init method 经过几次返工后 因为我得到了 0 字节文件等内容 我现在有一个下载所有图像的解决方案 但下载
  • 在同一列上多次调用 Pandas df.sort_values() 会产生不同的结果?

    下面的例子 为什么会发生这种情况以及如何防止它 gt gt gt df pd DataFrame a list range 150 b 1 2 3 50 gt gt gt df sort values b equals df sort va
  • 动态确定类型参数后返回通用类型

    我有一个通用类 如下所示 public class MyClass
  • 在编译的 C 或 C++ 代码中加密密码

    我知道如何在终端中使用 GCC 和 CC 编译 C 和 C 源文件 但是我想知道编译后在这些文件中包含密码是否安全 例如 我检查用户输入的某个密码 例如 123 但似乎已编译的 C C 程序可能会被反编译 无论如何 有没有办法编译 C C
  • React-Native 的本地 require() 路径

    我正在寻找一种方便的方法来访问应用程序根目录中的文件 同时避免使用如下所示的 require 字符串 require myModule 对于 Node 有一些很好的解决方案 https gist github com branneman 8
  • 信息框上的边界检测,因此它们不会从地图上消失

    以始终尝试在地图内完全绘制但不移动地图的方式重新计算信息框位置的最佳方法是什么 因此 如果我尝试打开靠近窗口右边缘的信息框 它应该将信息框绘制到标记的左侧 而不是在其顶部或左侧 有一个框架吗 Thanks 我的信息框选项根据请求 var m
  • 增长:内容宽度从中心开始之前

    我最近发现了以下文本进度样式的方法 并想知道是否有一种解决方法可以从中心增加元素宽度 因此文本也会从中心填充 而不是从左侧填充 body background color black p color rgba 255 255 255 4 f
  • Ingress 是直接与 Pod 通信还是通过服务与 Pod 通信?

    我开始知道 Nginx Ingress 直接与 pod 对话 而不是通过服务 为什么是端点而不是服务 https kubernetes github io ingress nginx user guide miscellaneous why
  • Javascript:使用元组作为字典键

    我有一种情况 我想创建从元组到整数的映射 在Python中 我会简单地使用一个元组 a b 作为字典的关键 JavaScript 有元组吗 我找到 a b 在 javascript 中作为表达式只返回 b 最后一项 显然这是从C继承的 所以
  • google-api-javascript-client :如何使用 Drive API 获取文件内容?

    首先 如果有一个问题 答案已经解决了我的问题 那么我真诚地为创建一个新问题而道歉 然而我已经找了3天了 还是没有找到答案 我的问题是 我一生都无法弄清楚如何提取文件 任何文件 的内容 通过阅读文档 我发现我返回的文件资源对象应该有一个名为
  • 成功后重定向到ajax表单

    我有一个带有远程 gt true 的表单 现在我的控制器看起来像 POST items POST items json def create item store items build params item respond to do