So legen Sie den Autorisierungsheader im HTML-Format der GET-Methode fest
P粉617237727
2023-08-31 12:21:27
<p>Ich möchte ein HTML-Formular an einen Server senden, der die Formulardaten in <code>queryString</code> zusammen mit dem Autorisierungsheader akzeptiert. Der Server sendet dann das HTML-Dokument zurück, nachdem er einige Berechnungen an den Daten- und Autorisierungsheadern durchgeführt hat. </p>
<h1>Einschränkungen</h1>
<ol>
<li>Ich kann keine JavaScript-Funktionen wie AJAX oder Fetch verwenden, da die Formularübermittlung eine HTML-Antwort erhält, die im Browser geöffnet werden muss. </li>
<li>Aus internen Gründen erfordert das Formular auch die Methode <code>GET</code> </li>
</ol>
<h1>Antwort</h1>
<p>Die empfangene Antwort ist ein HTML-Dokument mit JavaScript, das <code>sessionStorage.setItem('data', 'value')</code> enthält, das nur auf die Quelle beschränkt ist. Das Formular ist in der Quelle <em>parent.example.com</em> vorhanden und das empfangene HTML-Dokument befindet sich in der Quelle <em>child.example.com</em> Wir müssen also wie bei einer HTML-Formularumleitung zur Seite <em>child.example.com</em> wechseln. </p>
客户端代码无法执行此操作。
最接近的方法是让服务器以
401 Unauthorized
状态和WWW-Authenticate: Basic
标头响应请求,这会导致浏览器使用其本机 UI 提示用户输入凭据,并在用户输入凭据后,使用基本身份验证的格式重复请求并添加授权
。正如 Phil 在评论中提到的那样,听起来您想要请求的 URL 确实不是为浏览器直接导航而设计的。
与其尝试解决这个问题,您可能最好将身份验证系统更改为其他系统(例如为响应传统登录表单的提交而设置的 cookie)