ajax.js
// 引用expess框架
const express = require('express');
// 处理路径
const path = require('path');
const bodyParser = require('body-parser');
const fs = require('fs');
// 创建网站服务器
const app = express();
app.use(bodyParser.json());
app.get('/first', (req, res) => {
res.send('hello geyao')
})
app.get('/responsdate', (req, res) => {
res.status(400).send({ "name": "geyao" })
})
app.post('/post', (req, res) => {
res.send(req.body);
})
app.get('/get', (req, res) => {
res.send(req.query);
})
app.post('/json', (req, res) => {
res.send(req.body);
})
app.get('/readystate', (req, res) => {
res.send('hello');
})
app.get('/error', (req, res) => {
res.status(400).send('not ok');
})
app.get('/geyao', (req, res) => {
res.send('hello geyao')
})
app.get('/cache', (req, res) => {
fs.readFile('./text.txt', (err, result) => {
res.send(result);
});
})
app.use(express.static(path.join(__dirname)));
// 监听端口
app.listen(3000);
console.log('网站服务器启动成功, 请访问localhost')
ajax10.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function ajax(options) {
//创建ajax对象
var xhr = new XMLHttpRequest();
var params = '';
//循环用户的参数
for (var attr in options.data) {
params += attr + '=' + options.data[attr] + '&'
}
params = params.substr(0, params.length - 1);
if (options.type == 'get') {
options.url = options.url + '?' + params;
}
console.log(params);
//配置ajax对象
xhr.open(options.type, options.url);
//发送请求
if (options.type == 'post') {
var contentType = options.header['Content-Type'];
xhr.setRequestHeader('Content-type', options.header['Content-Type']);
if (contentType == 'application/json') {
xhr.send(JSON.stringify(options.data))
} else {
xhr.send(params);
}
} 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) {
console.log(responseText, xhr);
options.success('hah');
} else {
options.error(responseText, xhr);
}
}
}
ajax({
type: 'get',
data: {
name: 'geayo',
age: 20
},
url: 'http://localhost:3000/responsdate',
success: function(data) {
console.log('这里是成功函数' + data);
},
error: function(data, xhr) {
console.log('这里是失败函数' + data);
console.log(xhr);
},
header: {
'Content-Type': 'application/json'
}
})
</script>
</body>
</html>
ajax1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//1创建ajax对象
var xhr = new XMLHttpRequest();
//请求方式
xhr.open('get', 'http://localhost:3000/responsdate');
//发送请求
xhr.send();
//获取数据
xhr.onload = function() {
/* console.log(xhr.responseText); */
var res = JSON.parse(xhr.responseText);
console.log(res);
var str = '<h2></h2>'
document.body.innerHTML = str;
}
</script>
</body>
</html>
运行结果