原生Ajax创建过程

1,142 阅读1分钟

原生Ajax的创建过程

1.创建xhr核心对象

var xhr=new XMLHttpRequest()

2.调用open准备发送
  1. 请求方式
  2. 请求地址
  3. true异步 false同步

xhr.open('post','www.baidu.com/api/search',true)

3.如果是post请求,必须设置请求头

xhr .setRequestHeader('Conent-Type','application/x-www-form-urlencoded')

4.调用send发送请求

xhr.send("user=age=10&sex=男")

5.监听异步回调 onreadystatechange
  1. 判断readyState为4表示请求完成
  2. 判断status状态码为200表示接口请求成功
  3. reponeseText为相应数据,字符串类型

xhr onreadystatechange=function(){

​ if(xhr.readyState==4){

​ if(xhr.status==200){

​ console.log(xhr.responseText)

​ var res=JSON.parse(xhr.responseText)

​ console.log(res)

​ if(res.code==1){

​ modal.modal('hide');

​ location.reload();

​ }

​ }

​ }

}

6.post请求传送json格式数据

xhr.setRequestHeader('Content-Type', 'application/json')

7.Ajax原理

就是通过XMLHttpRequset对象向服务器发送异步请求,从服务器获取数据,然后用Javascript来操作DOM更新页面

8.

1.open(method,url,async)需要三个参数

method:发送请求使用的方法 (get或post)

url:服务器端脚本的url可以是任何类型的文件

async:对请求进行异步或同步处理

​ true:等待服务器响应时执行其他脚本,当响应就绪后对响应进行处理

​ false:等待服务器响应在执行

  1. send() 将请求送往服务器

  2. onreadystatechange:存有处理服务器响应的函数,每当readyState改变时,就会执行

  3. readyState:服务器响应的状态信息,从0到4发生变化

    0: 请求未初始化 1: 服务器连接已建立 2: 请求已接收 3: 请求处理中 4: 请求已完成,且响应已就绪

  4. responseText:获得字符串形式的响应数据

  5. setRequestHeader():post传数据时,用来添加http头,然后send(data),注意data格式

    get发送信息时之间加参数url上就可以