前言
通过AJAX可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。 AJAX不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。 全名Asynchronous Javascript And XML,就是使用JS代码获取服务器数据。Asynchronous(异步)synchronous(同步)XML被设计用来传输和存储数据。
1.如何设置express
(1)首先安装node.js
(2) win+r打开cmd 输入node空格 -v 查看版本号,有的话就成功了(注:要用管理员进行打开vscode) 当然也可以直接打开vscode查看
(3) 然后打开vscode 打开终端输入 npm init --yes
(4)在安装这个express(成功了就会有这么俩文件,和一个node _modules )
2.express的基本使用
// 1.引入express const express = require('express'); // 2.创建应用对象 const app = express(); // 3.创建路由规则 // request是请求报文的封装 // response是响应报文的封装 app.get('/', (request, response) => { // 4.设置响应 response.send('HELLO EXPRESS') }); // 5.监听端口启动服务 app.listen(8000, () => { console.log("服务已启动,8000 端口监听中....."); })
3.举一个小🌰
要求:点击按钮发送请求,接过服务器返回的结果,然后呈现在div
// 引入express const express = require('express'); // 创建应用对象 const app = express(); // 创建路由规则 // request是请求报文的封装 // response是响应报文的封装 app.get('/server', (request, response) => { // 设置响应头 response.setHeader('Access-Control-Allow-Origin', '*'); // 设置相应体 response.send('HELLO AJAX'); }); // 监听端口启动服务 app.listen(8000, () => { console.log("服务已启动,8000 端口监听中....."); })
然后在进行页面的书写和ajax的使用
onreadystatechange属性有五个值,分别是0 1 2 3 4
0 表示未始化最开始就是0,1表示open方法已调用完成,2表示send方法调用完毕,3表示服务端返回的部分结果4,服务端返回的所有结果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> #result { width: 200px; height: 100px; background-color: violet; border: 1px solid black; } </style> </head> <body> <!-- 要求:点击按钮发送请求,接过服务器返回的结果,然后呈现在div --> <button>点击发送请求</button> <div id="result"></div> <script> // 获取元素 const btn = document.getElementsByTagName('button')[0]; const div = document.getElementById('result'); btn.addEventListener('click', function () { // 进行ajax操作 // 1.创建对象 const xhr = new XMLHttpRequest(); // 2.初始化 设置请求方法和url 的请求参数 xhr.open('GET', 'http://localhost:8000/server?a=100&b=101&c=103') // 3.发送请求 xhr.send(); // 4.事件绑定,为了处理服务端返回的结果 // onreadystatechange属性有五个值,分别是0 1 2 3 4 // 0 表示未始化最开始就是0,1表示open方法已调用完成,2表示send方法调用完毕,3表示服务端返回的部分结果4,服务端返回的所有结果 xhr.onreadystatechange = function () { // 判断服务器返回了所有的结果 if (xhr.readyState === 4) { // 判断响应状态码 是否为200-300之间,响应码分为200 404 403 401 500,200 - 300之间都是成功的 if (xhr.status >= 200 && xhr.status < 300) { // 处理获取结果 行 头 体 console.log(xhr.status);// 状态码 console.log(xhr.statusText);// 状态字符串 console.log(xhr.getAllResponseHeaders());// 所有的相应头 console.log(xhr.response);// 响应体 // 把服务端拿过来的信息放到div中 div.innerHTML = xhr.response; } else { console.log('响应错误'); } } } }) </script> </body> </html>