ajax有兩種提交資料的方式,分別為get和post。post方法可傳輸大於2K的資料,在Ajax裡的應用不同之處在於:"post方法的請求地址與傳輸的資料是放在兩個對象裡—-請求地址放在open對象裡,傳輸的資料放在send對象裡;並且在傳輸資料之前定義一個傳輸檔案HTTP頭資訊(setRequestHeader)"
用上迴圈就是為了在資料發送前進行合理的處理,解決在指令碼語言對資料進行另外需求處理時出現的逾時現象。處於對ajax認識未深,如有說得不對或不到位的,還請指教。
ajax中的post方法有三個參數,前兩個 參數是必須的,第三個參數根據需求而定。下圖中畫紅色部分,如果你本身的編碼就是utf8的就可以不用了。因為ajax本身預設的傳送值以及本身都是用utf8編碼,如果你用的是gbk編碼則需要在資料傳送之前進行轉碼。
但是在伺服器處理語言中還需要相應的轉碼配合,如
<SCRIPT LANGUAGE="網頁特效">
function saveUserInfo(){
//擷取接受返回資訊層
var msg = document.getElementById("msg");
var f = document.user_info;
var userName = f.user_name.value;
var userAge = f.user_age.value;
var userSex = f.user_sex.value;
//接收表單的URL地址
var url = "commit.php教程";
//需要POST的值,把每個變數都通過&來聯結
var postStr = "name="+ userName +"&age="+ userAge +"&sex="+ userSex;
//執行個體化Ajax
var ajax = null;
if(window.XMLHttpRequest){
ajax = new XMLHttpRequest();
}
else if(window.ActiveXObject){
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
else{
return;
}
//通過Post方式開啟串連
ajax.open("POST", url, true);
//定義傳輸的檔案HTTP頭資訊
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//發送POST資料
ajax.send(postStr);
//返回資料的處理函數
ajax.onreadystatechange = function(){
if (ajax.readyState == 4 && ajax.status == 200){
msg.innerHTML = ajax.responseText;
}
}
}
</SCRIPT>
<form name="user_info">
姓名:<input type="text" name="user_name" /><br/>
年齡:<input type="text" name="user_age" /><br/>
性別:<input type="text" name="user_sex" /><br/>
<input type="button" value="提交表單" onClick="saveUserInfo()">
</form>
//構建一個接受返回資訊的層:
<div id="msg"></div>