ajax.js
function ajax (options){
var defaults = {
type: "get",
url: "",
async: true,
data: {
},
header: {
"Content-Type": "application/x-www-form-urlencoded"
},
success: function () {
},
error: function () {
},
}
Object.assign(defaults, options);
var xhr = new XMLHttpRequest();
xhr.open(defaults.type, defaults.url);
if (defaults.type == 'get') {
for (i in defaults.data){
params = i + i.value + "&"
}
params = params.substring(0, params.length - 1)
defaults.url = defaults.url + '?' + params;
}
if (defaults.type == 'post') {
var contentType = defaults.header['Content-Type']
xhr.setRequestHeader('Content-Type', contentType);
if (contentType == 'application.json') {
xhr.send(JSON.stringify(defaults.data));
}
else{
xhr.send(defaults.data);
}
}
else {
xhr.send();
}
xhr.onload = function () {
var contentType = xhr.getResponseHeader('Content-Type');
var responseText = xhr.responseText;
if (contentType.includes('application/json')) {
responseText = JSON.parse(responseText);
}
if (xhr.status == 200){
defaults.success(responseText, xhr);
}
else{
defaults.error(responseText, xhr);
}
}
}
index.html
<!DOCTYPE html>
<html lang="en">
<