1

以前にも同様の質問があったことは知っていますが、特定の問題の解決策を見つけるのに誰かが助けてくれるかどうか疑問に思っていました。

いくつかの異なるドメインのいくつかの異なるWebサイトに埋め込みたいフォームがあります。このフォームはPayPalにリダイレクトする必要があります。計画では、このフォームをiframeに埋め込んで、更新などを簡単にし、さらに最小限のコードを埋め込むことを計画していました。ただし、同一生成元ポリシーのためparent.location.href = "http://PaypalPaymentAddress.com";、フォームのリダイレクトには使用できません。フレーム内で支払いを処理したくない(Paypalはとにかくこれを禁止している)...

これを回避する唯一の方法は、スクリプトを実行してフォームを親ページにレンダリングし、Webサービスなどを呼び出してHTMLを取得することですが、それは明らかに大変な作業です。

それを機能させるためにこれをどのように設定するかについてのアイデアはありますか?

4

2 に答える 2

3

フォームにtarget-attribute "_parent"を使用できます。フォームが送信されると、target-URL が親ウィンドウに読み込まれます。

于 2013-02-03T23:10:05.920 に答える
1

私の最終的な方法は、モール博士の回答に基づいていましたが、少し異なりました。他の人に役立つ場合に備えて、ここで説明しました。

通常どおり送信するようにフォームを設定し、すべてのサーバー検証などを一度だけ実行できるようにしました。フォームが正常に送信された (サーバーの検証に合格した) 場合、空のフォームを含む小さな HTML クライアント ページが返されます。

この空のフォームには、親ページの URL の post アクションと target = "Parent" があり、クライアントの "document ready" では、jQuery メソッドがフォームを送信し、親ページがリロードされます。

スクリプトが無効になっている場合に備えて、「_top」属性のリンクも提供されます。

<script type="text/javascript">
    jQuery(document).ready(function () {
        $("#redirectForm").submit();
    });
</script>
<a href="{parentpageurl}" id="redirectLink" target="_top">click here if not redirected automatically</a><br />

<form id="redirectForm" method="POST" action="{parentpageurl}" target="_parent">

</form>

この方法はクロスドメインで機能するため、「Same Origin Policy」を回避する1つの方法。それが誰かを助けることを願っています!

于 2013-02-09T14:04:23.523 に答える