Ajax请求和响应

360 阅读2分钟

AJax第四天

请求报文&响应报文

http状态码www.runoob.com/http/http-s…

请求报文 - 格式

请求报文规定了客户端以什么格式把数据发送给服务器

注意事项:

在浏览器中,GET 请求比较特殊,它只有请求头,没有请求体。 在浏览器中,POST、PUT、PATCH、DELETE 请求既有请求头,又有请求体。

请求行

请求方式 get | post

请求地址 /api/getbooks

协议类型 http 1.1

请求头

键值对 格式

建议换 火狐 、

content-type 指定当前请求体数据格式

登录功能-----

空行

请求体

发送给后端的参数 放在 这里

image.png

响应报文 - 格式

响应报文规定了服务器以什么格式把数据响应给客户端

状态行

状态码

状态描述

协议版本

响应头

后端让前端登录失效时机 cookie

空行

响应体

后端返回的数据

image.png

http 响应状态码

响应状态码是由 http 协议规定的,具有通用性。

响应状态码:2xx 正常

响应状态码:3xx 重定向

响应状态码:4xx 客户端错误

响应状态码:5xx 服务器错误

业务状态码

业务状态码是后端程序员自定义的,不具有通用性。

1 http状态码 是行业通用 业务状态码 只是你的公司通用

2 http状态 在 响应报文-状态行看见 业务状态码 响应体看见

3 http状态码表示结果 你的情请求有没有正确的给到服务端 业务状态码 你当前的请求的业务是否正常响应

image.png

XMLHttpRequest

image.png

原生ajax代码

基本结构

1 const xhr = new XMLHttpRequest();

2 xhr.open(请求类型,请求的url)

3 xhr.send()

4 xhr.addEventListener("load",function(){ this.response // 响应结果 });

get请求的参数

只能写在 xhr.open("get",url+参数)

post请求
1 字符串类型的参数

xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xhr.send("a=1&b=2")

2json字符串类型参数

xhr.setRequestHeader("Content-type","application/json")

xhr.send(JSON.stringify({a:1,b:2}))

3 formdata

xhr.send(formdata)

4 封装ajax
函数形参解构-默认值

function func({data=""}){ }

判断变量是字符串类型还是对象类型

typeof data

判断实例不是属于构造函数

data instanceof FormData

防抖-节流

1 防抖

输入框 搜索框

清除延时器和开启延时器

2 节流

倒计时 按钮 移动分页

定义一个变量来控制是否允许代码的执行

image.png