错误:表单响应必须重定向到另一个位置
Posted
技术标签:
【中文标题】错误:表单响应必须重定向到另一个位置【英文标题】:Error: Form responses must redirect to another location 【发布时间】:2022-01-20 20:08:14 【问题描述】:我需要渲染从 API 收到的 html 代码。
在 Rails 6 中:我在控制器中执行此操作,并且运行良好。我调用了收到响应的 web 服务,然后我被重定向到渲染生成的代码。很好!
class GatewayController < ApplicationController
def new
init_gateway_call
end
def create
call_gateway
render_gateway_response
end
private
...
def render_gateway_response
render(html: @gateway_response.message.html_safe)
end
end
new.html.erb:
<%= form_with url: gateway_path, local: true do |f| %>
...
<% end %>
没有:create.html.erb
** Rails 7 **
我调用网络服务。我得到了答案,但我的页面处于空闲状态,并且出现此错误。
错误:表单响应必须重定向到 FormSubmission.requestSucceededWithResponse 的另一个位置 (application-0f0c10fb8f5683e32fc53a93a8a323c328de61682ca16fb65a6a2b8a3ba5d087.js:1614) 在 FetchRequest.receive (application-0f0c10fb8f5683e32fc53a93a8a323c328de61682ca16fb65a6a2b8a3ba5d087.js:1390) 在 FetchRequest.perform (application-0f0c10fb8f5683e32fc53a93a8a323c328de61682ca16fb65a6a2b8a3ba5d087.js:1374)
到目前为止,我尝试过:
# GatewayController
respond_to :create, format: :html, gateway_response: @gateway_response.message.html_safe
<%= gateway_response %>
没有成功...你有什么想法吗?不然就长周末了^^
【问题讨论】:
@KenWhite ...出于好奇...为什么要删除 Rails 7,因为这是我在迁移时遇到的问题,从 6.1(它正在工作)到 7(不再工作)? 因为你添加的标签已经有该信息,所以标题中不需要重复。 【参考方案1】:我在发布我的问题时发现了你。错误消息似乎是 Turbo 错误。我必须让我的表单数据加速错误。
<%= form_with url: gateway_path, local: true, data: turbo: false do |f| %>
...
<% end %>
让我的控制器保持原样。
render(html: @gateway_response.message.html_safe)
Happy upgrade anyone
【讨论】:
【参考方案2】:谢谢!我也在 Rails 7 上开发,data: turbo: false
解决了我的问题。
【讨论】:
以上是关于错误:表单响应必须重定向到另一个位置的主要内容,如果未能解决你的问题,请参考以下文章