如何在 GET 方法的 HTML 形式中設定授權標頭
P粉617237727
2023-08-31 12:21:27
<p>我想向伺服器提交一個 HTML 表單,該伺服器接受 <code>queryString</code> 中的表單資料以及授權標頭。然後,伺服器在對資料和授權標頭執行一些計算後發回 HTML 文件。 </p>
<h1>限量</h1>
<ol>
<li>我無法使用 AJAX 或 fetch 等 JavaScript 功能,因為表單提交會取得需要在瀏覽器上開啟的 HTML 回應。 </li>
<li>由於內部原因,表單也需要採用 <code>GET</code> 方法。 </li>
</ol>
<h1>響應</h1>
<p>收到的回應是 HTML 文檔,其中包含 JavaScript,其中包含 <code>sessionStorage.setItem('data', 'value')</code>,其範圍僅限於來源。此表單存在於 <em>parent.example.com</em> 來源中,而接收的 HTML 文件位於 <em>child.example.com</em> 來源中。因此,我們必須像 HTML 表單重定向一樣轉到 <em>child.example.com</em> 頁面。 </p>
客戶端程式碼無法執行此操作。
最接近的方法是讓伺服器以
401 Unauthorized
狀態和WWW-Authenticate: Basic
標頭回應請求,這會導致瀏覽器使用其本機UI 提示使用者輸入憑證,並在使用者輸入憑證後,使用基本驗證的格式重複請求並新增授權
。正如 Phil 在評論中提到的那樣,聽起來您想要請求的 URL 確實不是為瀏覽器直接導航而設計的。
與其嘗試解決這個問題,您可能最好將身份驗證系統變更為其他系統(例如為回應傳統登入表單的提交而設定的 cookie)