【发布时间】:2020-07-22 06:44:35
【问题描述】:
在 Rails 应用程序中,必须将用户重定向到外部站点以进行外部处理。控制器生成一个有效的 JSON 字符串和一组标头:
@result = HTTParty.post(
"https://some-test.supertester.com/checkout",
:verify => false,
:body => JSON.parse(@payment).to_json,
headers: {
'Content-Type' => 'application/json',
'X-TimeStamp' => "#{Time.now.to_i}",
'X-API-ID:' => "#{@api_id}",
'X-API-Signature:' => "#{@api_signature}"
},
timeout: 20
)
用户通过以下方式启动此操作:
<%= link_to t('proceed'), data_url_cart_path(id: @existing_cart.id), class: 'button' %>
其控制器操作生成上述 JSON 字符串并调用。
但是,当目标是将用户重定向到具有定义的标头和有效负载的上述 URL 时,Rails 会尝试使用具有相同操作名称的视图来响应此操作(甚至生成带有 format.json { head :no_content } 的空白)。
如何做到这一点?
【问题讨论】:
-
我认为问题出在你的方法上。如果您需要向此 URL 发送标头,则不能将用户重定向到该 URL,因为在重定向时您无法发送标头。