在前端的开发中,有时候没有一些库的支持,如jQuery,Axios。那么就只能使用js提供的原生的方法来发送请求。在这里记录一下我的使用
var url = "userInfo.do?p=4";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onload = function (e) {
console.log('返回了')
};
xhr.onerror = function (e) {
console.error(xhr.statusText);
};
xhr.send("IP=123");
但是这种使用太过繁琐
因此可以使用Promise进行一些封装
function post(url,data){
return new Promise((resolve,reject)=>{
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
xhr.setRequestHeader('X-Requested-With','XMLHttpRequest');
xhr.setRequestHeader('Accept','application/xml,text/xml,*/*; q=0.01');
xhr.onload = function (e) {
resolve(e)
};
xhr.onerror = function (e) {
reject(e)
};
xhr.send(data)
})
}
post('userInfo.do?p=4',"IP=123")
.then(res=>console.log('成功了'+res))
由于这里使用请求类型是application/x-www-form-urlencoded 因此send()方法中发送的请求内容
就需要是类似这种的name=js&age=18