千锋教育JavaScript全套视频教程(10天学会Js,kerwin前端jav
PBitW
编辑于 2024年04月22日 09:31

Ajax

ajax == async javascript and xml(xml对js不友好,一般是json,只是名字延续了)

步骤:

1、创建 xhr = new XMLHttpRequest()

2、配置 xhr.open (请求方式,请求地址,是否异步)

注:

I、这个是请求本地的 1.json,不能直接运行,要 vscode 插件 Live Server,默认是 5500 端口

II、也可以直接写 ./1.json 或者 1.json ,这里就理解 Live Server 是服务器就行

III、请求方式由后端定,但是推荐这样,其实无所谓

true表示异步,false表示同步(遗弃),默认异步!

同步的话,onload等就不能在下面(不然执行完了才说有回调函数)

3、设置请求头

xrh.setRequestHeader(''xxx“,”xxx'');

格式见:

https://zhuanlan.zhihu.com/p/668148302

4、发送xhr.send()

send 完才有后面的 xhr.onreadystatechange / onload 回调!

5、接受数据,注册一个事件

xhr.onreadystatechange (会执行三次,分别是:2、3、4)

默认可以直接用 xhr.readyState

xhr.responseText 在 xhr.readyState == 4 的时候才拿到最完整的

注:

I、status 状态码

II、最关心的就是 xhr.readyState == 4 的时候

III、xhr.onload 只在 xhr.readyState == 4 时候执行,所以比 xhr.onreadystatechange 更方便!

多种请求方式请求json模拟数据库

视频使用的是 node 的 json-serve 包

1、安装

139-请求方式-1 P140 - 18:07

2、使用

139-请求方式-1 P140 - 21:57

3、代码中使用

注意:

I、json-serve 不能和 live-serve 插件一起用,因为 post 会刷新界面,最好用 vscode 的 preview on web serve 插件

140-请求方式-2 P141 - 13:22

II、json-serve 只能通过id改

140-请求方式-2 P141 - 28:35

jsonp

jsonp是前后端要配合的

后端返回的和前端预留的要一致

执行完删除

只能get请求,不能其他的,但是可以用get传过去(老项目)

cors --》 后端添加就行

vue --》 配置proxy

fetch

fetch 取代 XMLHttpRequest,并不是取代ajax,ajax是前后端交互的一种技术,可以是fetch或者XML HttpRequest封装!

fetch是基于promise封装起来的

fetch两个then

可以是res.json() --》 json 或者 res.text() --》 字符串

1、GET

get不好传参,只能直接加在地址上

fetch的.catch无效,得自己处理,在第一个then中处理

2、post请求

3、put请求

put请求是完全覆盖,password也没了

4、patch请求

patch请求是部分覆盖,password还在

主要还是看后端,自己模拟就是上述这样