1.jquery ajax
// 1. 引入express
const { json } = require('body-parser');
const express = require('express');
// 2. 创建应用对象
const app = express();
// 3. 创建路由规则
// request 是对请求报文的封装
// response 是对响应报文的封装
app.get('/server', (request, response) => {
// 设置响应头 设置允许跨域
response.setHeader('Access-Control-Allow-Origin', '*');
// 设置响应体
response.send('HELLO AJAX-2');
});
// 可以接受任意类型的请求
app.all('/server', (request, response) => {
// 设置响应头 设置允许跨域
response.setHeader('Access-Control-Allow-Origin', '*');
// 响应头
response.setHeader('Access-Control-Allow-Headers', '*');
// 设置响应体
response.send('HELLO AJAX POST');
});
// JSON 响应
app.all('/json-server', (request, response) => {
// 设置响应头 设置允许跨域
response.setHeader('Access-Control-Allow-Origin', '*');
// 响应头
response.setHeader('Access-Control-Allow-Headers', '*');
// 响应一个数据
const date = {
name: 'atguigu'
};
// 对对象进行字符串转换
let str = JSON.stringify(date);
// 设置响应体
response.send(str);
});
// 针对 IE 缓存
app.all('/ie', (request, response) => {
// 设置响应头 设置允许跨域
response.setHeader('Access-Control-Allow-Origin', '*');
// 设置响应体
response.send('HELLO IE');
});
// 延时响应
app.all('/delay', (request, response) => {
// 设置响应头 设置允许跨域
response.setHeader('Access-Control-Allow-Origin', '*');
response.setHeader('Access-Control-Allow-Headers', '*');
setTimeout(() => {
// 设置响应体
response.send('延迟响应');
}, 3000)
});
// jQuery 服务
app.all('/jquery-server', (request, response) => {
// 设置响应头 设置允许跨域
response.setHeader('Access-Control-Allow-Origin', '*');
// response.send('hello jquery ajax');
const date = { name: '尚硅谷' };
response.send(JSON.stringify(date));
});
// axios 服务
app.all('/axios-server', (request, response) => {
// 设置响应头 设置允许跨域
response.setHeader('Access-Control-Allow-Origin', '*');
response.setHeader('Access-Control-Allow-Headers', '*');
// response.send('hello jquery ajax');
const date = { name: '尚硅谷' };
response.send(JSON.stringify(date));
});
// fetch 服务
app.all('/fetch-server', (request, response) => {
// 设置响应头 设置允许跨域
response.setHeader('Access-Control-Allow-Origin', '*');
response.setHeader('Access-Control-Allow-Headers', '*');
// response.send('hello jquery ajax');
const date = { name: '尚硅谷' };
response.send(JSON.stringify(date));
});
// 4. 监听端口启动服务
app.listen(8080, () => {
console.log("服务已经启动, 8080端口监听中...");
})
<button>post</button>
<button>ajax</button>
<script>
var btns = document.querySelectorAll('button')
// 配置 baseurl
axios.defaults.baseURL = 'http://127.0.0.1:8080';
btns[0].onclick = function() {
// get 请求
axios.get('/axios-server', {
// url 参数
params: {
id: 100,
vip: 7
},
// 请求头信息
headers: {
name: 'atguigu',
age: 20
}
}).then(value => {
console.log(value);
})
}
btns[1].onclick = function() {
axios.post('/axios-server', {
username: 'admin',
password: 'admin'
}, {
// url
params: {
id: 200,
vip: 9
},
// 请求头参数
headers: {
height: 180,
weight: 180,
},
})
}
btns[2].onclick = function() {
axios({
// 请求方法
method: 'POST',
// url
url: '/axios-server',
// url 参数
params: {
vip: 10,
level: 30
},
// 头信息
headers: {
a: 100,
b: 200
},
// 请求体参数
date: {
username: 'admin',
password: 'admin'
}
}).then(response => {
// 响应状态码
console.log(response.status);
// 响应状态字符串
console.log(response.statusText);
// 响应头信息
console.log(response.headers);
// 响应体
console.log(response.date);
})
}
</script>