AJAX傳值的方式有兩種,,GET和POST,GET方式實際上是把數(shù)據(jù)通過地址欄傳值,,比如“XX.aspx?id=.....”,,這樣有兩個不足,地址欄只能有255個字符,,因為通過地址欄,,所以不能傳遞重要的值,安全性不高,,POST方式實際上是把傳遞的值以表單的方式傳遞出去,,能夠存放2G大小的數(shù)據(jù),以下是代碼部分:
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); //規(guī)定發(fā)送的類型,,文件在服務器的位置,,是否異步傳送 xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //POST方式需要的語句,形成表單 xmlhttp.send(url); //發(fā)送數(shù)據(jù),,url就是要發(fā)送的傳遞值 xmlhttp.onreadystatechange=getcall; //請求完成時,,引起的反應 }
function getcall() { if(xmlhttp.readyState==4){ if(xmlhttp.status==200) { alert(xmlhttp.responseText); //測試是否發(fā)送成功,彈出返回的內容 } } }
在Default2.aspx頁面中接收傳遞值的句子是:Request.Form["傳遞的參數(shù)名"].ToString()
Request.Form["text"].ToString()
可以用xmlhttp.responseText來驗證發(fā)送請求是否成功,,但是如果發(fā)送了請求,,你再打開Default2.aspx頁面,Request.Form[" "]是NULL值的,,因為發(fā)送請求實際是在head標簽增加了表單內容,,再打開頁面的話,等于刷新了遍,,可以把你需要執(zhí)行的程序(比如刷新數(shù)據(jù)庫)放在Default2.aspx.cs的Page_Load中
|