原生ajax请求过程

使用原生Ajax发送请求的过程

(1)创建XMLHTTPRequest对象
//注意IE低版本不支持(IE6以下)

//XMLHTTPRequest用于在后台与服务器交换数据片
 //兼容处理
 var xhr = null;
  if(window.XMLHttpRequest){
     
  //标准浏览器
      xhr = new XMLHttpRequest();
  }else{
     
  //IE低版本
      xhr = new ActiveXObject("Microsoft");
      }

法二:

 try{
     
        xhr=new XMLHttpRequest();
    }catch(e){
     
    	xhr=new ActiveXObject("Microsoft")
     }

(2)准备发送
open(参数1,参数2,参数3)

参数1:请求方式
get获取数据(请求参数必须在url中传递)
post提交数据
参数2:请求URL地址
参数3:同步或异步的标志位
true表示异步(默认)
false表示同步

注意:
A.如果是get请求,请求参数必须在URL中传递
B.对于中文参数使用encodeURI()来防止乱码

var param='username'+username+'&password='+password;
xhr.open('get','get.php?'+encodeURI(param),true );

注意:
A.如果是post请求参数通过send传递,不需要使用encodeURI()转码
B.post请求必须设置请求头信息

xhr.open('post','03-post.php',true);
xhr.setRequestHeader("Content-Type","applicaton/x-www-form-urlencoded");

(3)执行发送动作

//get请求这里需要添加null对象
  xhr.send(null);
  //post请求参数在这里传递,并不需要转码
  xhr.send(param);

(4)指定回调函数

 xhr.onreadystatechange=function(){
     
  	if(xhr.readyState==4){
     //判断数据是否解析成功
  		if(xhr.status==200){
     //判断服务器返回的数据是否正常,注意Http常见状态码
  		alert(xhr.responseText);//responseXML
  	  }
  	}
  }

readyState的四个值:
0:表示XMLHTTPRequest对象创建完成
1:表示已经发送请求
2:表示浏览器已经收到服务器响应的数据
3:正在解析
4.表示数据一斤解析完成,可以使用,但是不一定是正确的

http常见状态码:
详细链接https://blog.csdn.net/banana960531/article/details/85621865这个博主总结的还是很详细的

服务器端的响应数据格式:
A.responseText
B.responseXML

你可能感兴趣的:(ajax,ajax)