0

ページを外部 Web サイトに送信する必要があります。問題ない。

問題は、外部 Web サイトに成功メッセージが表示されることです。良くありません。送信元のサイトを取得して、よりユーザー フレンドリーなものにリダイレクトする必要があります。外部の Web サイトはリダイレクトされません。これは、ページにリダイレクトを渡すと、最も簡単だと思います。

とにかく、これに対する最も簡単で労力の少ないアプローチの提案はありますか? iFRAME について読みました。別の方法はありますか?

前もって感謝します!

これらは静的な HTML ページです。

4

3 に答える 3

1

「外部サイトはリダイレクトされない」とおっしゃっているので、コントロールできないと思います。

これは、私が考えることができる3つの可能なアプローチがあることを意味します。

  1. 独自のサーバーを介してリクエストをプロキシします。これは安全なオプションですが、サードパーティのサイトがユーザーに期待するCookieは使用しません。
  2. iframeを使用して、失敗しないと想定します(結果を読み取ることができないため)。補正できない場合、エラーまたはタイムアウトになる可能性があります。
  3. Javaアプレット(または同様のもの)を使用し、ユーザーに一連の恐ろしいセキュリティ警告を受け入れてもらいます(Javaプラグインがインストールされている場合でも)
于 2009-05-13T09:34:53.327 に答える
1

外部サイトのマークアップには触れられないと思います。

それらが静的である場合、解決策が不足しています。私はよくcURLライブラリを使用して、この種の機能を提供しました(舞台裏で外部サイトに投稿します)。

あなたはiframeとJavaScriptでそれを行うことができるかもしれません。フォームのターゲットをiframeの名前に設定します(CSSを使用してiframeを非表示にする場合があります)。その後、それはうまく提出する必要があります。

于 2009-05-13T06:34:33.247 に答える
-1

IFRAME ソリューションは最も単純なように見えますが、エラーが発生しても気付かない可能性があります。

送信先のサイトが予測可能なマークアップを返す場合は、サイトが投稿の結果を解析して反応できるため、AJAX ルートが望ましいでしょう。ただし、JavaScript を無効にしているユーザーに対しては脆弱です。

おそらく最善の解決策は、IFRAME 手法を使用するようにマークアップを作成し、フォームに「onsubmit」ハンドラーを配置することです。JavaScript が有効になっている場合、ハンドラーは AJAX を実行できます。それ以外の場合は、IFRAME ソリューションが起動します。

JavaScript が有効になっている場合は、onsubmit 属性に「return false」を追加して、IFRAME 送信を防止することを忘れないでください。

<form action="http://external.server/submission.html" 
      target="id_of_your_IFRAME" 
      onsubmit="submitViaAJAX(); return false">
    ... form fields ...
</form>
于 2009-05-13T07:48:50.507 に答える