2010-09-03 93 views
-1

如何通过javascript检索获取或发布内容?而不是PHP。如何通过JavaScript检索GET或POST?

可能吗?

+3

请说明您的意思是“取回或取消”。从POST请求到读取当前页面中的POST数据,可能有几件事情可能意味着什么。 – 2010-09-03 09:51:47

回答

3

很明显,您无法使用javascript读取POST数据,因为数据在HTTP请求的主体中发布,并且只有服务器端脚本才能够读取它。至于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'); 
+0

谢谢你,这是我在找什么。 – justjoe 2010-09-03 14:07:47

3

从URL中提取查询字符串的值,您可能需要在另一个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

如果使用GET然后JavaScript可以获取正在使用window.location的传递的值。搜索。

有关如何操作的更多信息,请参阅http://javascript.about.com/library/blqs1.htm

如果您使用POST,Javascript无权访问

1

JavaScript可在客户端计算机上工作。 POST从客户机发送到服务器。

所以,你只剩下查询字符串。