サードパーティのAPIにajaxコールを使用してデータを送信して、カードが割賦をサポートしているかどうかを確認してから、payment#new
のアクションで応答が得られます。 。Rails - ajaxレスポンスの処理
ajaxコール;
$.ajax({
type: "GET",
url: "/payments/new",
dataType: "json",
data: {card_digit},
success: function(data) {},
error: function(jqXHR) {}
});
payments#new
アクション
def new
...
...
uri = URI.parse("https://...")
https = Net::HTTP.new(uri.host,uri.port)
https.use_ssl = true
req = Net::HTTP::Post.new(uri.path, @headers)
req.body = @body.to_json
res = https.request(req)
puts "Response #{res.code} #{res.message}: #{res.body}"
end
は次にここではJSONオブジェクトとしてres.bodyを返し、私はそれを使用し@returnのような変数に代入しようとしているビューにこれを表示したいと思いますビューではなく、チャンスは、私はブロックに応答してみましたが、それを行うこともできませんでした。
EDIT
は !、答えてくれてありがとうしかし、今、私はエラーEncoding::UndefinedConversionError ("\xC4" from ASCII-8BIT to UTF-8)
res.bodyリターンを得ます。
{"bankId":"13","bankName":"...","cardFamilyId":"..","cardFamilyName":"...","cardThreeDSecureMandatory":"0","merchantThreeDSecureMandatory":"0","result":"1","serviceProvider":"2","supportsInstallment":"1","type":"1"}
と書いてあります。
render json: { res_body: res.body }
と成功機能
で console.log(data)
なぜそれが起こるのでしょうか?
EDIT
は、私はあなたがアヤックスを使用している場合、あなたはあなたのビューを変更するには、JavaScriptコードでそれを処理する必要が
render json: { res_body: JSON.parse(res.body) }