先记录一下关于状态码的问题吧,由于这里面涉及到两个属性readyState和status; 浏览器
readyState是XMLHttpRequest对象的一个属性,用来标识当前XMLHttpRequest对象处于什么状态。 app
status是XMLHttpRequest对象的一个属性,表示响应的HTTP状态码。 url
当readyState==4 完成响应状态:此时,已经完成了HTTP响应的接收,当status==200 请求成功。例如200状态码,表示请求所但愿的响应头或数据体将随此响应返回。 spa
因此当readyState==4&&status==200的时候再处理返回值,其余的状况都作一个弹窗,提示“您的请求正在提交中”,页面的弹层也是覆盖后面的页面,因此提交按钮天然就不能随便点了,当有返回值的时候直接更改弹窗的提示信息就能够了 code
var getXmlHttpRequest = function () { if (window.XMLHttpRequest) { //主流浏览器提供了XMLHttpRequest对象 return new XMLHttpRequest(); } else if (window.ActiveXObject) { //低版本的IE浏览器没有提供XMLHttpRequest对象 //因此必须使用IE浏览器的特定实现ActiveXObject return new ActiveXObject("Microsoft.XMLHTTP"); } }; var xhr = getXmlHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { //获取成功后执行操做 //数据在xhr.responseText }else{ //弹出提示正在提交的提示弹层 } }; xhr.open("TYPE", "URL", true); //设置头信息,否则send传输的参数容易失败,后台接收不到参数 xhr.setRequestHeader("Content-Type", 'application/x-www-form-urlencoded'); xhr.send("tkmoney="+$('#tkmoney').val());