(C#)AJAX post方式传值

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






posted @ 2012-08-22 11:50 爱生活,爱编程 阅读(...) 评论(...) 编辑 收藏