【发布时间】:2010-09-12 09:10:20
【问题描述】:
是否可以通过 JavaScript 检测页面的 HTTP 请求方法(例如 GET 或 POST)?如果有,怎么做?
【问题讨论】:
是否可以通过 JavaScript 检测页面的 HTTP 请求方法(例如 GET 或 POST)?如果有,怎么做?
【问题讨论】:
一句话——没有
【讨论】:
url() 引用加载的 CSS - 并将这些也发送到您的处理程序;看,可能。
我不相信。如果您需要此信息,我建议您包含在服务器上生成的 <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>
【讨论】:
<meta id="request-method" name="request-method" content="@Request.HttpMethod">
您可以查看页面的referrer:
document.referrer == document.URL
如果是同一个页面,用户提交表单的可能性很大。
当然需要
【讨论】:
如果您需要此功能,请让服务器检测所使用的方法,然后修改 DOM 中的某些内容,以便稍后读出。
【讨论】:
对于普通的 post/get,你不能这样做,但是如果你使用 xmlhttp 调用并使用 getResponseHeader,你可以得到这个信息
【讨论】:
没有。
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,那是不可能的就像我说的它是一种客户端编程语言
我知道已经有了答案,但我只是想再解释一下。
【讨论】:
试试这个
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请求
【讨论】: