パラメータを伴うクロスドメイン リダイレクトの問題を解決するにはどうすればよいですか?リダイレクト URL の最後にパラメータを結合する方法は使用しないでください
要件、プロジェクト A はサーバー A 上にあり、サーバー B 上のプロジェクト B にリダイレクトされる必要があり、パラメーターを保持する必要があります。パラメーターはユーザーには表示されないため、パラメーターをリダイレクトの背後で結合することはできませんurl. 他に解決策はありますか?
プロジェクトはスプリングを使用します
RedirectAttributes.addFlashAttribute は不可能です。同じプロジェクト内のコントロール間でのみリダイレクトできます。
この問題は解決されていませんので、ご返信ください。
補足質問:
(1) 階下の回答
リクエストのヘッダーにデータを入れることはできますが、相手のサーバーがリクエストヘッダーのカスタムフィールドを許可するように設定する必要があります
これをどう理解すればよいでしょうか?どのように達成するか?
ブラウザはサーバー A (ajax リクエストではない) をリクエストし、サーバー A は 302 レスポンスとクライアントをリダイレクトするためのリダイレクト URL を返します。このとき、サーバー A はレスポンス ヘッダーに渡す必要があるパラメータを配置できます。 、次にブラウザ ターゲット URL はリダイレクトされますが、以前のリダイレクト応答ヘッダー情報はこの時点では引き継がれません
どうすれば彼にそれをそこに運ばせることができますか?
(2) 質問 2: サーバーは 302 リダイレクト応答を返しますが、この応答には応答本文メッセージを含めることができますか? ? ?
応答を使用してデータを書き込むテストを行っているためですが、ブラウザーはリダイレクト応答データを参照できません。実装ではこれはどのように制御されますか?すべてのリダイレクト応答には応答本文が含まれていませんか?
巴扎黑2017-05-27 17:43:37
サーバー A はパラメーターを B に送信し、B の応答を待ちます
B はパラメータを取得して保存し、トークンで A に応答します。 A はこのトークンを保持し、B にリダイレクトします
BはAからリダイレクトを受信し、トークンに基づいてステップ1で保存されたパラメータを取得します
PHP中文网2017-05-27 17:43:37
を作成すると、これらのパラメータがアドレス バーに表示されずにターゲット サイトに取り込まれます。 <form method="POST">
,把参数填以<input type="hidden" ...>
的形式填到<form>
里,再用JavaScript触发submit()
仅有的幸福2017-05-27 17:43:37
招待していただきありがとうございます。両方のサービスを自分で制御する場合は、HTTP セッションの暗号化と復号化の方法を参照するだけで十分です。また、関連するセキュリティ標準もあります。
曾经蜡笔没有小新2017-05-27 17:43:37
この問題をフロントエンドの観点から解決してみませんか?フロントエンド経由でajaxリクエストを送信し、jsonpを使用してクロスドメインパラメータ送信の問題を解決するだけです
漂亮男人2017-05-27 17:43:37
または、中間層サービスを作成して、ユーザーが中間層サービスをリクエストしたときに特定のパラメーターを表示できないようにします。これにより、クロスドメインの問題も制御されます
phpcn_u15822017-05-27 17:43:37
1. これら 2 つのサーバーを制御できる場合、Cookie を使用してドメイン間でサーバー B にアクセスできるのは、Cookie リクエスト ヘッダーおよびその他のカスタム リクエスト ヘッダーを使用する場合のみであることに注意してください。受け取らないでください。
2. http プロトコルでは、302 応答に応答本文を含めることはできないと規定されていないので、ブラウザが自動的に無視するのではないでしょうか。
3. 307 を使用すると、投稿リクエストが新しい URI に投稿されます。詳細については、rfc2616-307 を参照してください