HTTP 响应中包含一个状态码,用来表示服务器对客户端响应的结果。
状态码一般由3位构成:
1xx : 表示请求已经接受了,继续处理。
2xx : 表示请求已经处理掉了。
3xx : 重定向。
4xx : 一般表示客户端有错误,请求无法实现。
5xx : 一般为服务器端的错误。
一、 1开头的
1、100 , 正在初始化 (一般看不到)
2、101, 正在切换协议 (websocket 浏览器提供的)
二、2开头的
1、200,表示请求成功,但实际开发中还是要看response里的data到底是不是你自己要想的数据。
2、201,表示请求成功(新创建或添加,最近遇到的后端返回的,之前不知道一直都认为是200)。
三、3开头的
1、301 Moved Permanently 请求永久重定向。
2、302 Moved Temporarily 请求临时重定向。
3、304 Not Modified 文件未修改,可以直接使用缓存的文件。
四、4开头的(客户端也就是前端)
1、404
原因:请求的url错误,
解决办法:检查自己请求的url是否有写错,如果没写错则反馈给后端,是不是给错了。
2、400(bad request)
原因:坏的请求,就是传的参数的问题,可能是参数名、类型字段不一样,前后端协议不一致。
解决办法:检查自己的传的参数,或者用qs.stringify()序列化一下参数。和后端协商好怎么传用什么传怎么收,和后端达成一致问题就没那么多了。
3、401
原因:被禁止了,服务器端拒绝了,未认证。
解决:检查是否带上token等,找后端沟通。
4、403:
原因:Forbidden 服务器收到请求,但是拒绝提供服务,禁止访问。服务器通常会在响应正文中给出不提供服务的原因,比如 没有权限。
解决办法:
5、405:
原因:请求方式不通过,就是前后端的请求方式不一致。
解决办法:检查自己、时刻与后端保持亲密的联系
五、5开头
1、500(Internal Server Error)
原因:服务器遇到了一个未曾预料的情况, 导致了它无法完成对请求的处理
解决办法:反馈给后端,(同时也检查自己的代码,我也遇到过前端传的错一个参数的大小写同样是报500错误,后端找了半天原来是传的参数错了。)
2、503 => Service Unavailable,服务器超负荷, 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。
参考列表: