var xmlhttp;//new 原生ajax对象
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp=new XMLHttpRequest();
}
else
{
// IE6, IE5 浏览器执行代码
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)//状态码
{
var res = xmlhttp.responseText;
var res_json = $.parseJSON(res); //转换成JSON格式代码 不推荐使用eval
}
}
//选择GET格式的时候
xmlhttp.open("GET",url,true);
xmlhttp.send();// xmlhttp.send(null);
//选择POST格式的时候
xmlhttp.open("POST",url,true);
// 设置POST请求的请求头,少了的话,则后台无法接收到参数?
xmlhttp.setRequestHeader("Content-Type"
, "application/x-www-form-urlencoded");
// 发送请求
xmlhttp.send("id=123&type=456");
}
readyState表示XMLHttpRequest对象的处理状态:
0:XMLHttpRequest对象还没有完成初始化。(准备司机、车、货物)
1:XMLHttpRequest对象开始发送请求。(需要送十车货物,当前正在送第几车)
2:XMLHttpRequest对象的请求发送完成。(十车货送完毕)
3:XMLHttpRequest对象开始读取服务器的响应。(准备把这十车加工的货拉回来,当前第几车)
4:XMLHttpRequest对象读取服务器响应结束。(十车货全部拉回完毕)
status状态:
1xx:信息响应类,表示接收到请求并且继续处理。(所有拉去的货,工厂还没有加工完毕)
2xx:处理成功响应类,表示动作被成功接收、理解和接受。。(所有拉去的货工厂全部加工完毕)
3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理 。(所有拉去的货,工厂设备不够,让其他工厂帮忙加工)
4xx:客户端错误,客户请求包含语法错误或者是不能正确执行 。(这十车货有质量问题,工厂不能正常加工)
5xx:服务端错误,服务器不能正确执行一个正确的请求。(工厂在加工到一半过程中断电,不能继续加工)
1xx:信息响应类,表示接收到请求并且继续处理。(所有拉去的货,工厂还没有加工完毕)
2xx:处理成功响应类,表示动作被成功接收、理解和接受。。(所有拉去的货工厂全部加工完毕)
3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理 。(所有拉去的货,工厂设备不够,让其他工厂帮忙加工)
4xx:客户端错误,客户请求包含语法错误或者是不能正确执行 。(这十车货有质量问题,工厂不能正常加工)
5xx:服务端错误,服务器不能正确执行一个正确的请求。(工厂在加工到一半过程中断电,不能继续加工)
- 例子 表单from提交事件
var addb =document.getElementById('brandadd');//from的ID
addb.onsubmit = function () {
var fd = new FormData(this);
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
var message = xhr.responseText;
var jsonObject=eval("("+message+")");//最好不使用eval
var errors = jsonObject.nick;
if(this.readyState==4){
//成功之后的操作
}
}
xhr.open('POST',url,true);
xhr.send(fd);
return false;
}