原生AJAX
content-type默认text/plan,发表单或者json数据都需要手动设置数据格式
let xhr=XMLHttpRequest();
//-----------get方式---------------
xhr.open('get','url?查询字符串')
xhr.send()
//----------post方式---------------
xhr.open('post','url')
//post --表单数据
xhr.setRquestHeader('content-type','application/x-www-form-urlencoded;charset=utf-8')
xhr.send(qs.stringify(post参数js对象))
//post --json数据
xhr.setRquestHeader('content-type','application/json;charset=utf-8')
xhr.send(JSON.stringify(post参数js对象))
//------------------
xhr.onreadystatechange = function () {
if(readystate==4&&xhr.status==200){
xhr.reponseText
}
}
测试不同数据类型和content-type声明的情况:
在send里放js对象,设置头部为表单格式,content-type为表单格式,在请求体的playload会变成
[object,object] 字符串–没有格式,表单格式为将对象转成表单格式数据变成属性名,属性值为空字符串。
在send里放js对象,content-type为json格式,在请求体只会出现playload里的字符串数据 没有格式,
在send里放js对象,不设置头部,在请求体的playload会变成[object,object]字符串没有格式,content-type为text/plan 文本类型
在send里放json数据,不设置头部,在请求体有json数据,content-type为 text/plan。
在send里放qs数据,不设置头部,在请求体的playload有字符串数据,content-type为 text/plan ---