客户端检测HTTP请求方式

IT技术 javascript http-headers
2021-03-04 04:01:50

是否可以从 JavaScript 检测页面的 HTTP 请求方法(例如 GET 或 POST)?如果是这样,如何?

6个回答

一句话—​​—不

好吧,有多种方法可以解决此特定情况,“否”是不正确的。有可能,取决于您是否愿意做所涉及的工作,您基本上必须创建一个 DOM onload/mutation 触发器和一个 XHR 包装器 - 在这两种情况下触发相同的处理程序......然后对于 CSS,你可以使用您的 onload/mutation 触发器扫描加载的 CSS 以获取url()引用 - 并将这些也发送到您的处理程序;看,可能。
2021-05-14 04:01:50

我不相信。如果您需要此信息,我建议您包含一个<meta>在服务器上生成元素,您可以使用 JavaScript 进行检查。

例如,使用 PHP:

<meta id="request-method" name="request-method" content="<?php echo htmlentities($_SERVER['REQUEST_METHOD']); ?>">
<script type="text/javascript">
    alert(document.getElementById("request-method").content);
</script>
.NET Razor 变体: <meta id="request-method" name="request-method" content="@Request.HttpMethod">
2021-05-14 04:01:50

您可以检查页面的引用:

document.referrer == document.URL

如果是同一个页面,很可能是用户提交了表单。

当然这需要

  • 您不会从页面链接到自身(无论如何这是可访问性所必需的)
  • 表单被提交到它所在的页面
  • 用户没有禁用引荐来源网址
整个问题与 xhr 无关
2021-05-01 04:01:50

如果您需要此功能,请让服务器检测使用的方法,然后修改 DOM 中的某些内容,您可以稍后读取这些内容。

您不能为普通的 post/get 执行此操作,但是如果您使用 xmlhttp 调用并使用 getResponseHeader,则可以获取此信息