ajax实现异步请求通用代码:
<script type="text/javascript"> var xmlHttpRequst ; function createXMLHttpRequst() { //创建xmlhttprequest对象 try{ // Firefox, Opera 8.0+, Safari xmlHttpRequst=new XMLHttpRequest(); } catch (e) { //IE try { xmlHttpRequst = new ActiveXObject("MSXML2.XMLHTTP"); } catch (e) { try { xmlHttpRequst = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("您的浏览器不支持ajax!"); } } } } // 发生请求函数 function sendRequst(url,param) { createXMLHttpRequst(); //xmlHttpRequst.open("GET", url + "?" + param, true);//get形式 xmlHttpRequst.open("POST", url, true); xmlHttpRequst.setRequestHeader("Content-Type", "multipart/form-data"); //post请求需要设置头部 xmlHttpRequst.onreadystatechange = processResponse; //xmlHttpRequst.send(); //get发送请求 xmlHttpRequst.send(param); //post用于发送参数 } //处理回传数据 function processResponse() { if (xmlHttpRequst.readyState == 4) { if (xmlHttpRequst.status == 200) { var data = xmlHttpRequst.responseText; alert(data); } } } //调用ajax function usercheck() { var userName = document.fmhjs.userName.value; var pwd = document.form1.pwd.value; var param = "用户名:" + userName + "------ ,密码:" + pwd; var url = "jsHandle.ashx"; sendRequst(url,param); } </script>
在get提交中setRequestHeader貌似是无效的,不起作用的,在firefox中open方法必须在setRequestHeader之前,关于setRequestHeader的参数主要有这几种形式:
1、CONTENT-TYPE:application/x-www-form-urlencoded含义是表示客户端提交给服务器文本内容的编码方式 是URL编码,即除了标准字符外,每字节以双字节16进制前加个“%”表示
2、当然还有其他编码方式,如:CONTENT-TYPE:multipart/form-data
至于:Content-length 就是表示提交的数据字节大小
http有几种提交方式,其中比较常用的就是 GET 和 POST。
服务器端可以使用一般处理程序对ajax请求就行处理。