function ajax(options){
// 定义一个默认的配置
var defaultOptions = {
type: 'get',
url: '',
data: {},
success: function(){
}
}
// 将传入的对象和默认的对象进行合并
var opts = {...defaultOptions, ...options}
console.log(opts)
// 1. 创建一个实例
var xhr = new XMLHttpRequest()
// 2. 配置请求信息
// 判断请求方式是get还是post
// 判断是一个字符串还是一个对象 {a:1,b:2} --> '?a=1&b=2'
// 判断data是不是一个对象 如果是一个对象 转换成字符串
if(Object.prototype.toString.call(opts.data) === '[object Object]'){
// 遍历对象
let str = '?'
for(let key in opts.data){
str+= `${key}=${opts.data[key]}&`
}
// 截取最后的&
str = str.slice(0, -1)
// 把转换成后的数据赋值给data
opts.data = str
}
if(opts.type === 'get'){
xhr.open(opts.type, opts.url+opts.data, true)
// 3. 发出请求
xhr.send()
}else{
xhr.open(opts.type,opts.url,true)
// 设置请求头 规定前端发给后端的数据格式
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
// 3. 发出请求
xhr.send(opts.data.slice(1))
}
// 4. 返回后端响应的数据
xhr.onload = function(){
opts.success(xhr.responseText)
}
}