POST請求主要用於提交信息,請求的數據會放在HTTP請求包的包體中。因此POST請求的安全性比GET請求要更高,這裏的安全性是指不易被別人截取信息,當然,從另一方面來看,POST請求是可以修改服務器資源的,若是在請求中嵌入腳本,也是存在網站被破解的風險,這個又是服務器接收端對請求數據做處理時該考慮的問題了。下面寫個簡單的POST請求的代碼案例:
<html>
<head>
<script type="text/javascript">
function load()
{
var xmlhttp;
if (window.XMLHttpRequest)
{ //判斷是否支持XMLHttpRequest
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200) //請求成功
{
document.getElementById("post_txt").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","post.txt",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-post");
xmlhttp.send("user=simple&sex=men");
}
</script>
</head>
<body>
<h2>AJAX POST</h2>
<button type="button" onclick="load()">請求數據</button>
<div id="post_txt"></div>
</body>
</html>
這裏的open方法跟上一篇GET請求是一樣的,open() 方法的 url 參數是服務器上文件的地址:該文件可以是任何類型的文件,比如 .txt 和 .xml,或者服務器腳本文件,比如 .asp 和 .php (在傳回響應之前,能夠在服務器上執行任務)。
如果需要像 HTML 表單那樣 POST 數據,請使用 setRequestHeader() 來添加 HTTP 頭。然後在 send() 方法中規定您希望發送的數據:
向請求添加 HTTP 頭的格式說明如下:
setRequestHeader(header,value)
header: 規定頭的名稱
value: 規定頭的值