原生ajax

Ajax 的原理简单来说通过 XmlHttpRequest 对象来向服务器发异步请求,从服务器获得数据,然后 ⽤ JavaScript 来操作 DOM ⽽更新⻚⾯

实现 Ajax 异步交互需要服务器逻辑进⾏配合,需要完成以下步骤:

1.创建一个ajax(XMLHttpRequest ​​​​​​)对象

2.连接到服务器open

3.发送请求send

4.接收服务器返回值

HTTP常见状态码

状态码第⼀位数字决定了不同的响应状态,有如下:

1 表示消息 2 表示成功 3 表示重定向 4 表示请求错误 5 表示服务器错误

1xx

代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态⾏和某些可选的响应头信息,并 以空⾏结束

常⻅的有:

100(客户端继续发送请求,这是临时响应):这个临时响应是⽤来通知客户端它的部分请求已经 被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽 略这个响应。服务器必须在请求完成后向客户端发送⼀个最终响应

101:服务器根据客户端的请求切换协议,主要⽤于websocket或http2升级

2xx

代表请求已成功被服务器接收、理解、并接受

常⻅的有:

200(成功):请求已成功,请求所希望的响应头或数据体将随此响应返回

201(已创建):请求成功并且服务器创建了新的资源 202(已创建):服务器已经接收请求,但尚未处理

203(⾮授权信息):服务器已成功处理请求,但返回的信息可能来⾃另⼀来源

204(⽆内容):服务器成功处理请求,但没有返回任何内容

205(重置内容):服务器成功处理请求,但没有返回任何内容

206(部分内容):服务器成功处理了部分请求

3xx

表示要完成请求,需要进⼀步操作。 通常,这些状态代码⽤来重定向

常见的有:

300(多种选择):针对请求,服务器可执⾏多种操作。 服务器可根据请求者 (user agent) 选择⼀ 项操作,或提供操作列表供请求者选择

301(永久移动):请求的⽹⻚已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求 的响应)时,会⾃动将请求者转到新位置

302(临时移动): 服务器⽬前从不同位置的⽹⻚响应请求,但请求者应继续使⽤原有位置来进⾏ 以后的请求

303(查看其他位置):请求者应当对不同的位置使⽤单独的 GET 请求来检索响应时,服务器返回 此代码

305 (使⽤代理): 请求者只能使⽤代理访问请求的⽹⻚。 如果服务器返回此响应,还表示请求 者应使⽤代理

307 (临时重定向): 服务器⽬前从不同位置的⽹⻚响应请求,但请求者应继续使⽤原有位置来进 ⾏以后的请求

4xx

代表了客户端看起来可能发⽣了错误,妨碍了服务器的处理

常⻅的有:

400(错误请求): 服务器不理解请求的语法

401(未授权): 请求要求身份验证。 对于需要登录的⽹⻚,服务器可能返回此响应。

403(禁⽌): 服务器拒绝请求

404(未找到): 服务器找不到请求的⽹⻚

405(⽅法禁⽤): 禁⽤请求中指定的⽅法

406(不接受): ⽆法使⽤请求的内容特性响应请求的⽹⻚

407(需要代理授权): 此状态代码与 401(未授权)类似,但指定请求者应当授权使⽤代理

408(请求超时): 服务器等候请求时发⽣超时

5xx

5xx 表示服务器⽆法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状 态发⽣

常⻅的有:

500(服务器内部错误):服务器遇到错误,⽆法完成请求

501(尚未实施):服务器不具备完成请求的功能。 例如,服务器⽆法识别请求⽅法时可能会返回 此代码

502(错误⽹关): 服务器作为⽹关或代理,从上游服务器收到⽆效响应

503(服务不可⽤): 服务器⽬前⽆法使⽤(由于超载或停机维护)

504(⽹关超时): 服务器作为⽹关或代理,但是没有及时从上游服务器收到请求

505(HTTP 版本不受⽀持): 服务器不⽀持请求中所⽤的 HTTP 协议版本

同源和跨域

跨域本质是浏览器基于同源策略的⼀种安全⼿段 同源策略(Sameoriginpolicy),是⼀种约定,它是浏览器最核⼼也最基本的安全功能

所谓同源(即指在同⼀个域)具有以下三个相同点 协议相同(protocol) 主机相同(host) 端⼝相同(port)

反之⾮同源请求,也就是协议、端⼝、主机其中⼀项不相同的时候,这时候就会产⽣跨域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值