0
  1. クライアントは、HTML POST フォームが表示される example.com/form.html に移動します
  2. クライアントはフォームに特定の情報を入力し、example.com/form.html に送信します。
  3. example.com/form.html が POST リクエストを受信すると、クライアントは example.com/redirected.html にリダイレクトされます example.com/redirected.html のみにデプロイされている JavaScript。「バック」コントロールのiframeとajaxが関係している可能性があると思いますが、信頼できる解決策はまだ見つかりませんでした。

    操作は同じドメインで行われるため、クロスドメインの問題は発生しません

4

3 に答える 3

0

いいえ、これは不可能だと思います。

あなたはどちらかでなければなりません

  • 投稿された値を Cookie に保存する
  • 投稿された値をサーバー側のセッション変数に保存する
  • 投稿された値を GET パラメータとして新しい URL に追加します
  • GET を使用して元のフォームを投稿し、投稿された値をdocument.referer新しいページから苦労して抽出します
于 2011-08-22T09:03:44.377 に答える
0

プレーンなhtmlを使用してこれを行う方法はないと思います。一部のサーバー側言語 (PHP など) を使用すると、問題なく実行できます。

私は以前に同様の状況にありました.JSにデータを渡す方法は、PHPを使用して出力を準備するときにタグにデータを含めることです.

リダイレクト先の php スクリプトが、リダイレクト先のスクリプトから POST データを受け取ると仮定します。これを php コードに含めます。

<?php
  echo '<script type="text/javascript">';
  echo 'var postData = '.json_encode($_POST).';';
  echo '</script>'
?>

これにより、javascript は POST 値に含まれるものを認識します。js から値にアクセスするには:

//assuming you need the value for $_POST['foo']
var foo = postData.foo;
// or if json is encoded as just an associative array
var foo = postData['foo'];

POST データがリダイレクトされたスクリプトに渡されない場合 (これが自動的に行われるかどうかを確認していません)、最初の php スクリプトの $_SESSION 変数に $_POST データを書き込むことができます。

<?php
  $_SESSION['postdata']=$_POST;
?>

次に、リダイレクトされたスクリプトから SESSION からそれを取得します。

<?php
  $postdata = $_SESSION['postdata']; //use this to create the inline script in the html
  unset($_SESSION['postdata']; //empty this from the SESSION variables
?>
于 2011-08-22T10:19:52.043 に答える
0

HTML5 では、localstorageを使用します。(答えは、オブジェクトを格納する方法を説明していますlocalstorage- そこにフォームフィールドのオブジェクトを格納できます)。

ただし、 js を使用して投稿する際のデータを example.com/form.html に保存してから、example.com/redirected.html で取得する必要があります。form.html に js がないと、この方法ではこれができません。

これは、html5 を使用する予定で、そこにあまり多くのデータを保存しない場合に機能します。iirc には、ブラウザによって 5 ~ 10 MB の制限があります。

于 2011-08-22T10:02:08.493 に答える