到目前为止,我一直在使用:
xmlhttp.open("GET","server_script.php?q="+str,true);
由于
编辑: 我正在为可能遇到此页面的任何人提供解决方案,以演示如何使用POST而不是GET。如果您不熟悉AJAX,我会首先使用GET方法推荐本教程http://www.w3schools.com/PHP/php_ajax_php.asp。
解决方案 -
的javascript:
xmlhttp.open("POST","script.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send('var_name='+str);
PHP:
$var_name = GET['var_name'];
echo $var_name;
有关使用POST和GET的原因 - 请参阅评论。
答案 0 :(得分:6)
这就是你如何使用post:
var url = "server_script.php";
var params = "q="+str;
xmlhttp.open("POST", url, true);
//Send the proper header information along with the request
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.onreadystatechange = function() {//Call a function when the state changes.
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
alert(xmlhttp.responseText);
}
}
xmlhttp.send(params);
答案 1 :(得分:4)
您显示的查询可能完全可以作为GET请求。无需改变它。
有理由使用其中一个:在服务器端更改状态的请求(即更改数据)通常应使用POST; “读取”请求应该是GET。
这带来了隐含的安全优势,因为您不能通过将URL走私到用户页面来做任何损害(例如,显示其URL指向名为deleteall.php
的管理页面的图像。)
如果您的请求只是检索数据,那么完全可以使用GET。
有关何时使用哪个内容的广泛讨论,请参阅此问题。 GET vs POST in AJAX?