是否可以从 JavaScript 检测页面的 HTTP 请求方法(例如 GET 或 POST)?如果是这样,怎么做?
Soldarnal
问问题
20982 次
7 回答
34
一句话——没有
于 2008-09-23T14:11:14.807 回答
21
我不相信。如果您需要此信息,我建议您包含<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>
于 2008-09-23T14:21:38.447 回答
10
您可以检查页面的引荐来源网址:
document.referrer == document.URL
如果它是同一页面,则用户很可能提交了表单。
当然这需要
- 你不会从一个页面链接到它本身(无论如何这是可访问性所必需的)
- 表单提交到它所在的同一个页面
- 用户没有禁用引荐来源网址
于 2011-07-20T10:27:58.663 回答
9
如果您需要此功能,请让服务器检测所使用的方法,然后修改 DOM 中的某些内容,以便稍后读取。
于 2008-09-23T14:20:50.337 回答
1
您不能为普通的 post/get 执行此操作,但是如果您使用 xmlhttp 调用并使用 getResponseHeader,则可以获取此信息
于 2008-09-23T14:11:36.880 回答
0
不。
JS 是一种客户端编程语言,这意味着一切都是客户端。但是,您可以使用 PHP 或任何服务器端语言来执行此操作。
如果您要使用 php,以下是一个示例:
<?php
$foo = $_POST["fooRequest"]; # The actual response.
# do something with the foo variable like:
# echo "Response got: " + $foo;
?>
然后添加一些 HTML:
<form action="test.php" method="post">
<input type="text" class="foo" name="fooRequest" placeholder="Testing requests" />
<button type="submit" name="submitButton">Send</button>
</form>
上面的代码发送一个 POST 请求,然后在 PHP 中我们得到 'fooRequest'。但是,如果您要使用 JS,那是不可能的,就像我说的那样,它是一种客户端编程语言
我知道已经有了答案,但我只是想再解释一下。
于 2021-05-29T14:22:07.483 回答
-4
试试这个
function getURIQueryString(){
var params = {};
var qstring = window.location.toString().substring(window.location.toString().indexOf("?") + 1);
var regex = /([^&=]+)=([^&=]+)/g;
var m;
while (m = regex.exec(qstring)){
params[decodeURIComponent(m[1])] = decodeURIComponent(m[2])
}
return params
}
它通常有效。比如获取一个名为test的get参数。用这个
getURIQueryString().test
但是不可能得到一个post请求
于 2018-11-03T15:48:06.293 回答