最近在做项目的时候需要用到ajax。真是书到用时方恨少,不得已又翻开以前的资料开始学习。遇到了很多问题。
先把代码贴出来。
x.addEventListener("click",test,false); //为文本框添加事件 function test() { createXMLHttpRequest(); //调用创建XMLHttpRequest对象方法 var url = "/SplitDemo/Index"; //SpliDemo是controller,index是action var queryString = createQueryString(); //调用获取input标签方法 xmlHttp.open("POST",url,true); //创建调用,使用post方式,设置异步方式 xmlHttp.onreadystatechange = handleStateChange; //调用回调函数 xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded:"); //删除缓存 xmlHttp.send("ll="+queryString); //真正地发出 } function createXMLHttpRequest() { if (window.ActiveXObject) { //判断浏览器是否是ie6 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { //非ie6直接创建XMLHttpRequest xmlHttp = new XMLHttpRequest(); } } function createQueryString() { var hh = document.getElementById("a").value;//获取控件的值 return hh; } function handleStateChange() { //如果发送成功打印控件的值 if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { var hh = document.getElementById("a").value; alert(hh); } } }后台
String ss = Request.Params["ll"].ToString();值得注意的地方有很多。
1在.net中,request.getParameter方法是不存在的。很多人使用post方式提交,却使用request.getstring方法来截取肯定是获取不到的。
2所操作的控件应该包含在form中,因为post本身是提交表单的
3在使用post进行提交的时候,真正发出参数的地方在send()方法中,在后台截取的也必须是send中的参数。参数要带上"="号才能被识别。