0

重複の可能性:
javascript を使用してポスト リクエスト パラメータを読み取る方法

異なる Web サーバーで実行されている 2 つの Web ページを想像してください。

  • Page-A: < form method="POST" action="http://server-b/page-b" > を持つ
  • ページ B: ページ A からのフォームの送信を処理します。

ページ B で実行されている JavaScript は、ページ A から POST された入力フィールドの値にアクセスできますか?


重要な制約は、Page-B を配信するサーバーが POST された値を Page-B に代入できないことです。そのため、JavaScript は DOM または他のブラウザー API を介してのみ検出できます。

この制約の理由は、本番環境の Page-B では、フィールド名が特定の形式に一致する必要があるためです。ただし、テスト中、Page-B は別のプラットフォームで提供する必要があります。このプラットフォームは、実稼働サーバーで必要なフィールド名形式をサポートしていませ ん。 ライセンスやその他の制約により、本番と同じプラットフォームを使用することはできません。ページ B のテスト ページを提供するために別のサーバーを起動することもできますが、それは大変な作業であり、避けたいと考えています。

プラットフォーム (PHP、Ruby など) に固有の回答はしないでください。関連するシステムは(本質的に)独自のものです。

4

2 に答える 2

2

短い答えはノーです。

POSTed パラメーターは、サーバーによって処理される HTTP 要求の一部であり、ブラウザー (投稿を行うページ上) とサーバーの間の直接通信です。

サーバーの応答がレンダリングされると、それらの HTTP 要求ヘッダーは失われます。

あなたの問題にはいくつかの解決策があります:

  1. ページ A に POST された値を Cookie などの形式で記憶させます。
  2. サーバーに POST された値を JavaScript 変数として、または非表示の FORM フィールドとしてレンダリングさせます。
  3. これらの値は URL から直接読み取ることができるため、POST の代わりに GET を使用してください。

お役に立てれば!

于 2013-01-24T18:24:13.850 に答える
1

簡単に言えばいいえです。ブラウザはページ B のコンテンツのみを認識し、ページ B にアクセスしたリクエストは認識しません。

ページ B に POST された値を含めることができない場合、そのページの JavaScript がそれらの値を取得する唯一の方法は、完全に別のルートです。サーバーにそれらをログに記録させてから、ページBにAJAXリクエストまたは同様に複雑で壊れやすいものを介してサーバーに問い合わせさせる. すべてを同期させるのは難しいかもしれません。

于 2013-01-24T18:23:59.700 に答える