如何通过JavaScript检索GET或POST?

时间:2010-09-03 09:50:47

标签: javascript jquery

如何通过javascript检索获取或发布?而不是PHP。

有可能吗?

4 个答案:

答案 0 :(得分:3)

显然你无法使用javascript读取POST数据,因为数据在HTTP请求正文中被POST,只有服务器端脚本能够读取它。就GET数据而言,您可以使用this function来解析当前页面的查询字符串:

function gup(name) {
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec(window.location.href);
    if(results == null) {
        return "";
    }
    return results[1];
}

并使用如下:

var username = gup('username');

答案 1 :(得分:3)

要从网址中提取查询字符串的值,您可能需要在另一个Stack Overflow帖子中查看this solution @CMS

但是,JavaScript无法访问其所服务的HTTP请求。一种可能的选择是从服务器端脚本呈现JavaScript代码,以便将所有/一些POST值传递给JavaScript。使用php的非常基本的例子:

<script type="text/javascript>
   var postValue = '<?php echo $_POST["name"]; ?>';
</script>

除了上述内容之外,您还可以使用这样的json_encode函数将所有POST数据序列化为JavaScript对象(哈希表):

<script type="text/javascript>
   var postData = <?php echo json_encode($_POST); ?>;
</script>

然后在JavaScript中,您应该能够访问所有POST数据,如下所示:

alert(postData["name"]);  // displays the value of name

答案 2 :(得分:2)

如果您使用GET,那么Javascript可以读取使用window.location.search传递的值。

有关如何操作的详情,请参阅http://javascript.about.com/library/blqs1.htm

如果您使用POST

,则Javascript无权访问

答案 3 :(得分:1)

Javascript适用于客户端计算机。 POST从客户端计算机发送到服务器。

因此,您只剩下查询字符串。