ajax
手写一个简单的ajax
跨域的常用实现方式
知识点
XMLHttpRequest
状态码
跨域:同源策略,跨域解决方案
//get请求
const xhr = new XMLHttpRequest()
xhr.open("GET","/api",false)
xhr.onreadystatechange = function(){
//这里的函数异步执行,可参考之前JS 基础中的异步模块
if(xhr.readyState == 4){
if(xhr.status == 200){
alert(xhr.responseTexe)
}
}
}
xhr.send(null)
console.log("ajax")
const xhr = new XMLHttpRequest()
//false代表异步请求,因为是网络请求,不能卡顿
xhr.open('GET','/test.json',false)
xhr.onreadystatechange = function (){
if(xhr.readyState ===4){
if(xhr.status ===200){
alert(xhr.responseText)
}else{
console.log("other situatio")
}
}
}
xhr.send(null)
const xhr = new XMLHttpRequest()
//true,因为是网络请求,不能卡顿
xhr.open('POST','/login',true)
xhr.onreadystatechange = function (){
if(xhr.readyState ===4){
if(xhr.status ===200){
alert(xhr.responseText)
}else{
console.log("other situatio")
}
}
}
const postData={
userName:'jason',
password:'xxx'
}
xhr.send(JSON stringify(postData))
xhr.readyState
0:未初始化 还没调用send()方法
1:载入,已调用send()方法,正在发送请求
2:载入完成 send()方法执行完成,已经接收到
3:交互 正在解析相应内容
4:完成 相应内容解析完成,可以在客户端调用
xhr.status
2xx:表示成功
3xx:重定向,浏览器直接跳转
4xx:客户端请求错误,404 403无权限
5xx:服务器端报错