我想使用 Javascript 从POST
请求中提取自定义 HTTP请求标头,以便稍后在请求中使用。这需要是一个POST
请求的原因是,此自定义标头仅合并在POST
HTTP 方法上,而不是GET
或其他 HTTP 谓词。
假设自定义 HTTPPOST
请求标头为X-CUSTOM-TOKEN
。在提交X-CUSTOM-TOKEN
值之前,如何从POST /
中读取和提取的值(HTTP 表单):
history.pushState('', '', '/');
document.body.innerHTML='<html><body style="background-color:black;"><form id="foobar" action="https://localhost:4449/" method="POST" enctype="multipart/form-data"><input type="hidden" name="access" value="true" /><input type="submit" value="Submit request" /></form></body></html>';
document.getElementById('foobar').submit();
我知道这个用例听起来很愚蠢,但它是出于教育目的,我可以更好地理解与HTTP传输有关的JavaScript。
非常感谢您的帮助。
这取决于。
如果请求是使用 Fetch API 构造的,则可以查询请求对象的标头。
但是,如果请求是使用 XMLHTTPRequest 构造的,则似乎没有任何方法可以从准备好但未发送的请求中获取标头。当然,如果代码是你的,你应该有权在配置 XHR 时访问这些值,这样你就可以利用这个机会将数据存储在以后可以检索的地方。
如果 XHR 是由您无法编辑的第三方代码构建的,那么您就不走运了。在这种情况下,您可以使用某种服务器端代理将数据回显给您。这在教育环境中并不罕见。