Rails button_to:当指定post时使用get请求

4

在我的Rails应用程序中,我有一个页面上的。当我点击该页面上的按钮时,它会执行适当的操作,并做到我想要的一切,但是:它使用了GET请求。当我查看网络下的Chrome控制台时,它显示使用GET请求。

当我第一次注意到这一点时,我正在通过无线连接到互联网的笔记本电脑上运行rails服务器,并且我正在使用iPad连接进行测试,连接速度相当慢,因此在单击按钮后加载页面后,参数将在地址栏中显示几秒钟。我不希望这样。

所以,这促使我进行检查,正如我所说,在chrome网络选项卡下,它显示了一个get请求,在我的路由器中指定::via => :post然后转到该页面时它就崩溃了。它说没有路由与[GET]/----匹配。当我删除:via => :post时,它正常工作。这证实了在单击时它使用GET请求访问/----页面。

我已经尝试在中指定method = post,尽管Rails API表示它默认为POST。

任何人能提供一些关于为什么它使用“get”而不是“post”的洞察力吗?如果可能的话,我真的很想它使用POST。


1
这个按钮是表单的一部分吗?动作方法是作为表单的一部分指定的,而不是按钮本身。 - Doon
直到我发现并修复了我的错误后,我才注意到你的评论。但是您说得非常对,先生,为此我感谢您,因为即使我没有找到答案,我最终也会看到您的评论。 - user1759942
1个回答

1

我本来考虑因为羞愧而删除这个问题,但我想我还是会发布答案。

在我的页面上,我有一个带有button_to的表单和一些文本字段。这些字段包含了一些半敏感的数据,我不想让它们出现在URL中,但我需要将它们传递到下一个页面。button_to提交了该表单并重定向到适当的页面。在表单标签中,我指定了method=get。我刚刚注意到了这一点。这是今年最大的失误时刻。感谢任何阅读并考虑我的问题的人。


回答问题并提供解决方案可以帮助别人,这是值得肯定的(虽然这不是我本来想要解决的问题)。 - ootoovak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接