redirect_to上的Ruby on Rails POST参数
我必须在我网站上的一个控制器中调用另一个URL。 问题是,对于所有参数,其他站点需要我溢出url。 无论如何从控制器调用另一个url并使用POST发送所有参数?
我不期待其他网站的回复。 此外,我认为使用Net :: HTTP库有一种方法可以做到这一点,我想我不知道如何。
谢谢
您无法在HTTP规范中同时执行重定向和发送POST数据。 重定向是通过发送一个简单的Location: otherlocation.html
标头来实现的。 POST数据不适合该系统的任何位置。
您是否希望用户转到此页面,或者您是否只想将数据发送到应用程序? 如果要发送数据而不是将用户发送到那里,请使用Ruby的Net :: HTTP模块。 如果要发送用户,可能会强制您输出带有表单的视图,并使用Javascript自动提交。 (不要忘记通过在noscript
标签中提供提交按钮来优雅地降级。)
这是来自ruby文档 :
require 'net/http' require 'uri' result = Net::HTTP.post_form(URI.parse('http://www.example.com/search.cgi'), {'q'=>'ruby', 'max'=>'50'})
正如您所看到的,您可以将params作为一个方便的哈希传递,而不像其他语言会让您搞乱http格式。