//把一个对象,转成查询字符串
function formateObj(obj) {
// {a:1,b:2}
if (obj) {
var arr = Object.keys(obj);
// console.log(Object.keys({a:1,b:2}))
// ?["a", "b"] =>a=1&b=2
var rs = arr.map(function(item) {
// console.log(item)
var arr = item + '=' + obj[item]
// return
// a=1b=2
})
// console.log(rs)
return rs.join("&")
} else {
return ''
}
}
function myAjax(obj) {
var type = obj.type
var url = obj.url
var data = obj.data
// 变量:保存是一个函数。
var callback = obj.success
// {a:1,b:2} =====> a=1&b=2
var params = formateObj(data)
// console.log(data,params)
var xhr = new XMLHttpRequest()
if (type === 'get') {
if (params !== '') {
url = url + "?" + params
}
}
xhr.open(type, url)
if (type === "post") {
xhr.setRequestHeader('Content-type', "application/x-www-form-urlencoded")
}
xhr.onload = function() {
// console.log(11)
// 调用回调函数,传入响应体
// 如果传入了callBack,并且callback就是一个函数
if (typeof callback === 'function') {
var aa = JSON.parse(xhr.responseText)
callback(aa)
}
}
if (type === "get") {
xhr.send()
} else {
xhr.send(params)
}
xhr.send(type == "get" ? null : params)
}