原生Ajax的创建过程
1.创建xhr核心对象
var xhr=new XMLHttpRequest()
2.调用open准备发送
- 请求方式
- 请求地址
- 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
- 判断readyState为4表示请求完成
- 判断status状态码为200表示接口请求成功
- 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:等待服务器响应在执行
-
send() 将请求送往服务器
-
onreadystatechange:存有处理服务器响应的函数,每当readyState改变时,就会执行
-
readyState:服务器响应的状态信息,从0到4发生变化
0: 请求未初始化 1: 服务器连接已建立 2: 请求已接收 3: 请求处理中 4: 请求已完成,且响应已就绪
-
responseText:获得字符串形式的响应数据
-
setRequestHeader():post传数据时,用来添加http头,然后send(data),注意data格式
get发送信息时之间加参数url上就可以