GETメソッドのHTML形式で認可ヘッダーを設定する方法
P粉617237727
2023-08-31 12:21:27
<p>承認ヘッダーとともに <code>queryString</code> のフォーム データを受け入れるサーバーに HTML フォームを送信したいと考えています。次に、サーバーはデータと認証ヘッダーに対していくつかの計算を実行した後、HTML ドキュメントを送り返します。 </p>
<h1>制限</h1>
<ol>
<li>フォーム送信ではブラウザで開く必要がある HTML 応答が返されるため、AJAX やフェッチなどの JavaScript 機能を使用できません。 </li>
<li>内部的な理由により、フォームには <code>GET</code> メソッドも必要です。 </li>
</ol>
<h1>応答</h1>
<p>受信した応答は、ソースのみをスコープとする <code>sessionStorage.setItem('data', 'value')</code> を含む JavaScript を含む HTML ドキュメントです。フォームは <em>parent.example.com</em> ソースに存在し、受信した HTML ドキュメントは <em>child.example.com</em> ソースにあります。したがって、HTML フォーム リダイレクトのように、<em>child.example.com</em> ページに移動する必要があります。 </p>
クライアント コードではこの操作を実行できません。
最も近い方法は、サーバーが
401 Unauthorized
ステータスとWWW-Authenticate: Basic
ヘッダーでリクエストに応答するようにすることです。これにより、ブラウザーがユーザーに次のプロンプトを表示します。ネイティブ UI 認証情報を使用して入力し、ユーザーが認証情報を入力した後、基本認証の形式を使用してリクエストを繰り返し、Authorization
を追加します。Phil がコメントで述べたように、リクエストしたい URL は実際にブラウザーで直接ナビゲーションできるように設計されていないようです。
この問題を解決しようとするよりも、認証システムを別のもの (従来のログイン フォームの送信に応じて設定される Cookie など) に変更したほうがよい場合があります。