AJAX傳值的方式有兩種,GET和POST,GET方式實際上是把資料通過地址欄傳值,比如“XX.aspx?id=.....”,這樣有兩個不足,地址欄只能有255個字元,因為通過地址欄,所以不能傳遞重要的值,安全性不高,POST方式實際上是把傳遞的值以表單的方式傳遞出去,能夠存放2G大小的資料,以下是代碼部分:
Default.aspx頁面:
單擊按鈕時,傳遞文字框的值到Default2.aspx頁面
JScript.js檔案代碼(將js編譯在Default.aspx頁面):
var xmlhttp
function ajax()
{
if(window.XMLHttpRequest){ // Mozilla 瀏覽器 //建立XMLHttpRequest對象
xmlhttp = new XMLHttpRequest();
}else if (window.ActiveXObject){ // IE 瀏覽器
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
var text=document.getElementById("Text1").value;
var url="text="+text;
xmlhttp.open("POST","Default2.aspx",true); //規定發送的類型,檔案在伺服器的位置,是否非同步傳送
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //POST方式需要的語句,形成表單
xmlhttp.send(url); //發送資料,url就是要發送的傳遞值
xmlhttp.onreadystatechange=getcall; //請求完成時,引起的反應
}
function getcall()
{
if(xmlhttp.readyState==4){
if(xmlhttp.status==200)
{
alert(xmlhttp.responseText); //測試是否發送成功,彈出返回的內容
}
}
}
在Default2.aspx頁面中接收傳遞值的句子是:Request.Form["傳遞的參數名"].ToString()
Request.Form["text"].ToString()
可以用xmlhttp.responseText來驗證發送請求是否成功,但是如果發送了請求,你再開啟Default2.aspx頁面,Request.Form[" "]是NULL值的,因為發送請求實際是在head標籤增加了表單內容,再開啟頁面的話,等於重新整理了遍,可以把你需要執行的程式(比如重新整理資料庫)放在Default2.aspx.cs的Page_Load中
有關教程,大家可以參考:http://www.w3school.com.cn/ajax/ajax_xmlhttprequest_send.asp