2016-04-17 19 views
0

私のレールアプリはAPIを消費しています。そのため、フォームを自動的に送信し、別のウェブサイトにリダイレクトします。私は以下のようにしています:API呼び出しを使用したリダイレクト

<%= form_tag "https://www.<somewebsite>.action", method: :post,:protocol => 'https',:id => 'test' do %> 
    <%= hidden_field_tag 'field1', 'value1' %> 
    <%= hidden_field_tag 'field2', 'value2' %>   
    <%= hidden_field_tag 'field3', 'value3' %>  
    <% end %> 
<script>document.getElementById('test').submit();</script> 

これは別のウィンドウで動作し、別のWebサイトを開きます。他のウェブサイトのURLがマスクされるように、 "iframe"でこのリダイレクションを呼び出すことが可能ですか?私は、ユーザーが他のWebサイトにリダイレクトされていることを知らせたくありません。

+0

これは、怪しげで不名誉な音です。 – max

答えて

0

はい、間違いなく可能ですし、ユーザーには見えません。私の会社はこれを行うクライアントを持っているので、私たちのコードを目に見えない形で自分のサイトに埋め込むことができます。

iframeでプライマリページを作成します。あなたの主なページがロードするとiframeは、上記のコードから自分のフォームを含む独自のページのページを指します:

<iframe src="your_page_with_the_form.html" name="my_iframe" width="300" height="1200" frameborder="0" scrolling="auto" style="background-color:#F7F3DE;"></iframe> 

応じiframeheightwidthを調整します。 your_page_with_the_form.htmlを作成し、form_tagコードを入力します。

あなたのコードによって投稿がiframeの「ポップアウト」になった場合は、form_tag:target => 'my_iframe'を指定する必要があります。

別の方法として、フォームをメインページに保存し、Javascriptを使用してフォームデータを外部APIに送信する方法があります。

+0

ユーザーはiframeコンテンツをブロックするようにブラウザを設定できます。 – Elvn

+0

ありがとうuser212514、私はあなたの解決策を試みます... – sacmax

0

somewebsiteX-Frame-Optionsヘッダーを正しく設定していない場合にのみ可能です。

関連する問題