簡體   English   中英

AJAX-使用POST而不是GET

[英]AJAX - Using POST instead of GET

到目前為止,我一直在使用:

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的原因-請參見注釋。

這是您將使用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);

資源

您顯示的查詢可能非常適合作為GET請求。 無需更改。

有一個理由使用另一個理由:在服務器端更改狀態的請求(即更改數據)通常應使用POST; “讀取”請求應為GET。

這具有隱式的安全優勢,因為您無法通過將URL走私到用戶頁面中來造成任何損害(例如,顯示其URL指向名為deleteall.php的管理頁面的deleteall.php )。

如果您的請求只是檢索數據,那么您可以繼續使用GET。

有關何時使用哪種工具的詳細討論,請參見此問題。 AJAX中的GET與POST?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM