81,092
社区成员
发帖
与我相关
我的任务
分享
//由于不同的浏览器对XmlHttpRequest对象的构建方法不同·所以通过一个方法封装·
function createXmlHttpRequest() {
var xmlhttp = null;
try {
//Firefox, Opera 8.0+, Safari
xmlhttp = new XMLHttpRequest();
}
catch (e) {//IEIE7.0以下的浏览器以ActiveX组件的方式来创建XMLHttpRequest对象
var MSXML = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
for (var n = 0; n < MSXML.length; n++) {
try {
xmlhttp = new ActiveXObject(MSXML[n]);
break;
}
catch (e) {
}
}
}
return xmlhttp;
}
//一个方法·用于搭建Ajax的
function chekUserByAjax2() {
//第一步、获取XmlHttpRequest对象。
var xhr = new createXmlHttpRequest();
var name = document.getElementById("userName").value;//获取输入框的内容
//第二步、写一个监听事件
xhr.onreadystatechange = function () {//当onreadystatechange事件发生的时候,执行这个函数内的内容
//判断,当Ajax请求发送,且得到返回结果的时候再显示
if (xhr.readyState == 4) {
if (xhr.status == 200 || xhr.status == 304) {
//监听函数处理返回来的结果
var ret = xhr.responseText;
document.getElementById("meg").innerHTML = ret;//将返回的结果写入到meg这个标签内
//如果用户名已经存在,则将光标移动到用户名的输入框内
if(ret=="对不起,该用户名已经存在!"){
document.getElementById("userName").focus();//将光标移动到这个输入框内
document.getElementById("userName").value="";//清空输入框内的内容
}
}
}
};
//第三步、准备一个链接请求,会触发onreadystatechange这个事件
xhr.open("post", "userNameSelect2", true);
/*
注意:如果要传文件或者Post内容给服务器,必须先调用setRequestHeader方法,修改MIME类别。如下:
http_request.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”);
这时资料则以查询字符串的形式列出,作为send的参数,例如:
name=value&anothername=othervalue&so=on
*/
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");//设置一下请求头
//第四步、发送请求,会触发onreadystatechange这个事件
xhr.send("name=" + name);
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>FirstAjax.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script src="FirstAjax2.js"></script>
</head>
<body>
<form method="get" >
用户名:
<input type="text" name="userName" id="userName" onchange="chekUserByAjax2()">
<!-- <input type="submit" value="检查用户名" onclick="chekUserByAjax()"> -->
<br>
<div id="meg"></div>
密 码:
<input type="password" name="userPaw" id="userPaw">
<br>
邮 件:
<input type="emil" name="emil" id="emil">
<br>
</form>
<div id="meg2"></div>
</body>
</html>