const xml = new XMLHttpRequest()
xml.open("get", "test.json", true)
xml.send(null)
xml.onreadystatechange = function(){
if(xml.readyState === 4 && xml.status === 200){
console.log(JSON.parse(xml.responseText))
alert(xml.responseText)
}
}
后端的数据
{
"name":"zhangsan"
}
post请求方式发送请求参数,需要使用JSON.stringify(xxx)
,将数据转为json格式。
const xml = new XMLHttpRequest()
xml.open("post", "/login", true)
xml.onreadystatechange = function(){
if(xml.readyState === 4 && xml.status === 200){
alert(xml.responseText)
}
}
const postData = {
userName: 'zhangsan',
password: 'xxx'
}
xml.send(JSON.stringify(postData))
readyState是请求的状态:
open
方法open
方法已被调用send
方法已被调用,header已被接收status是服务器返回的状态码:
进行Ajax请求时,浏览器要求当前网页和服务器必须同源。同源指的是请求的URL地址和当前页面的URL地址中的协议、域名、端口三者必须一致。
function ajax(url){
const p = new Promise((resolve, reject)=>{
const xml = new XHLHttpRequest()
xml.open("get", url, true)
xml.send(null)
xml.onreadystatechange = function(){
if(xml.readyState === 4 && xml.status === 200){
resolve(JSON.parse(xml.responseText))
}else if(xml.status === 404){
reject(new Error('404 not found'))
}
}
})
return p
}
const url = '/data/test.json'
ajax(url)
.then(res=>console.log(res))
.catch(err=>console.error(error))