Ajax
1、原生Ajax
1、Ajax简介
Ajax全称为Asynchronous JavaScript And XML ,就是异步的JS和XML
通过AJAX可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据,AJAX不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式
2、XML简介
XML可扩展标记语言。
XML被设计用来传输和存储数据。
XML和HTML类似,不同的是HTML中都是预定义标签,而XML没有预定义标签,全是自定义标签,用来表示一些数据。
1 | 比如说我有一个学生数据: |
现在已经被JSON取代了
1 | 用JSON表示: |
3、AJAX的特点
1、优点
1 | (1)可以无需刷新页面与服务器端进行通信 |
2、缺点
1 | (1)没有浏览历史,不能回退 |
4、AJAX的使用
1、HTTP
HTTP(hypertext transport protocol)协议【超文本传输协议】,协议详细规定了浏览器和万维网服务器之间互相通信的规则
1、什么是Http协议
1 | 1、什么是协议? |
2、请求的Http协议格式
1 | 1、客户端给服务器发送数据叫请求 |
1 | 1、GET请求 |
1 | 2、POST请求 |
3、常用请求头的说明
1 | Accept:表示客户端能够接受的数据类型 |
4、哪些是GET请求和POST请求?
1 | GET请求有哪些? |
1 | POST请求有哪些? |
5、响应的HTTP协议格式
1 | 1、响应行 |
6、常用的响应码说明
1 | 200 表示请求成功 |
7、MIME类型说明
MIME是HTTP协议中的数据类型
MIME的英文全称是“Multipurpose Internet Mall Extensions”多功能Internet邮件扩充服务。MIME类型的格式是“大类型/小类型”,并与一种文件的扩展名相对应。
常见的MIME类型:
文件 | MIME类型 |
---|---|
超文本标记语言文本 | .html htm text/html |
普通文本 | .txt text/plain |
RTF文本 | .rtf application/trf |
GIF图形 | .gif image/gif |
JPEG图形 | .jpeg .jpg image/jpeg |
au声音文件 | .au audio/base |
MIDI音乐文件 | mid,.midi audio/midi,audio/x-midi |
RealAudio音乐文件 | .ra .ram audio/x-pn-realaudio |
MPEG文件 | .mpg .mpeg video/mpeg |
AVI文件 | .avi video/x-msvideo |
GZIP文件 | .gz application/x-gzip |
TAR文件 | .tar application/x-tar |
2、express框架
写一个简易的服务器
1 | // 引入express |
3、get请求
1 |
|
1 | // 引入express |
4、post请求
1 |
|
1 | // 引入express |
5、json数据
1 |
|
1 | // 引入express |
7、服务器js代码重新启动问题
下载nodemon
1 | npm install -g nodemon |
运行
1 | nodemon server.js |
若遇到禁止运行脚本,请以管理员身份打开vscode
在终端运行
1 | set-ExecutionPolicy RemoteSigned |
8、ie浏览器缓存问题
1 |
|
1 | // 引入express |
9、请求超时与网络异常
1 |
|
1 | // 引入express |
10、取消请求
1 |
|
11、重复请求问题
1 |
|
2、jQuery中的AJAX
1、jQuery发送AJAX请求
1 |
|
1 | // 引入express |
3、Axios中的AJAX
1、axios发送ajax请求
1 |
|
1 | // 引入express |
4、fetch中的AJAX
1、fetch发送ajax请求
1 |
|
1 | // 引入express |
5、跨域
1、同源策略
同源策略(Same-Origin Policy)最早由Netscape公司提出,是浏览器的一种安全策略。
同源:协议、域名、端口号、必须完全相同
违背同源策略就是跨域
2、如何解决跨域
1、JSONP
1 | 1、JSONP是什么? |
原理
1 |
|
app.js
1 | const data={ |
server.js
1 | // 引入express |
案例
1 |
|
server.js
1 | // 引入express |
jQuery发送jsonp请求
1 |
|
server.js
1 | // 引入express |
2、CORS
1 | 1、CORS是什么? |
1 |
|
server.js
1 | // 引入express |