首页 > 代码库 > XML异步请求实例
XML异步请求实例
其实还是很格式化的:
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Demo</title><style>body, input, select, button, h1 { font-size: 28px; line-height:1.7;}</style> </head><body><h1>员工查询</h1><label>请输入员工编号:</label><input type="text" id="keyword" /><button id="search">查询</button><p id="searchResult"></p><h1>员工新建</h1><label>请输入员工姓名:</label><input type="text" id="staffName" /><br><label>请输入员工编号:</label><input type="text" id="staffNumber" /><br><label>请选择员工性别:</label><select id="staffSex"><option>女</option><option>男</option></select><br><label>请输入员工职位:</label><input type="text" id="staffJob" /><br><button id="save">保存</button><p id="createResult"></p><script>document.getElementById("search").onclick = function() { var request = new XMLHttpRequest(); request.open("GET", "server.php?number=" + document.getElementById("keyword").value); request.send(); request.onreadystatechange = function() { if (request.readyState===4) { if (request.status===200) { document.getElementById("searchResult").innerHTML = request.responseText; } else { alert("发生错误:" + request.status); } } }}document.getElementById("save").onclick = function() { var request = new XMLHttpRequest(); request.open("POST", "server.php"); var data = "name=" + document.getElementById("staffName").value + "&number=" + document.getElementById("staffNumber").value + "&sex=" + document.getElementById("staffSex").value + "&job=" + document.getElementById("staffJob").value; request.setRequestHeader("Content-type","application/x-www-form-urlencoded"); request.send(data); request.onreadystatechange = function() { if (request.readyState===4) { if (request.status===200) { document.getElementById("createResult").innerHTML = request.responseText; } else { alert("发生错误:" + request.status); } } }}</script></body></html>
分析一下:
document.getElementById("save").onclick = function() { var request = new XMLHttpRequest(); request.open("POST", "server.php"); var data = "http://www.mamicode.com/name=" + document.getElementById("staffName").value + "&number=" + document.getElementById("staffNumber").value + "&sex=" + document.getElementById("staffSex").value + "&job=" + document.getElementById("staffJob").value; request.setRequestHeader("Content-type","application/x-www-form-urlencoded"); request.send(data); request.onreadystatechange = function() { if (request.readyState===4) { if (request.status===200) { document.getElementById("createResult").innerHTML = request.responseText; } else { alert("发生错误:" + request.status); } } }
首先在id=save的元素上绑定了一个点击事件。
创建一个XMLHttpRequest对象。
设定提交方式为post,提交地址为server.php,省略一个默认为true的参数,true表示异步请求,false表示同步请求。
构造post数据。
设置Header,使得服务器识别将要传递的数据为post传递。相比之下,使用get方法直接在url中传递参数要快速一点。
调用send方法,将data发送到服务器。
监听onreadystatechange事件,并根据4和200两个状态码判定请求成功。进行其他操作。
通常我们将表单的数据用jquey的serialize()方法来将表单序列化。每一个要提交的数据必须有一个name属性。
over
XML异步请求实例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。