通常前后端使用ajax交互时,客户端向服务器发送请求时,然后服务器向我们返回状态码。状态码就是告诉我们服务器响应的状态,由3位数字组成,其中第一位数字表示响应类别,响应类别从1到5分为五种 。
状态码 | 响应类别 | 原因 |
---|---|---|
1xx | 信息性状态码(Informational) | 服务器正在处理请求 |
2xx | 成功状态码(Success) | 请求已正常处理完毕 |
3xx | 重定向状态码(Redirection) | 需要进行额外操作以完成请求 |
4xx | 客户端错误状态码(Client Error) | 客户端原因导致服务器无法处理请求 |
5xx | 服务端状态码(Server Error) | 服务器原因导致处理请求出错 |
2XX 成功
200 OK
表示请求被服务器正常处理 ,最常见的就是这个
204 No Content
表示请求已成功处理,但是没有内容返回
也就是返回的响应报文中没有报文实体
一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况
3XX 重定向
301 Moved Permanently
永久重定向,表示请求的资源已经永久的搬到了其他位置 ,资源已经被分配了新的URI
302 Found
临时重定向,表示请求的资源临时搬到了其他位置 ,请求的资源暂时被配到到了新的URI,和301很像,只不过资源是临时移动
303 See Other
表示请求资源存在另一个URI,应使用GET定向获取请求资源
303功能与302一样,区别只是303明确客户端应该使用GET访问
304 Not Modified
表示客户端自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
304通常在IE浏览器下多次请求同一个地址出现的。
场景:删除表格其中一条数据后重新请求列表数据渲染表格,第二次请求时状态码是304导致被删除的数据还是出现在前端。
原因:IE浏览器下同一地址的ajax请求优先读取本地缓存数据
解决方法:在请求地址后面加上时间戳,保证每次请求的地址都不一样,这样浏览器就无法读取缓存。
4XX 客户端错误
400 Bad Request
表示请求报文存在语法错误或参数错误,服务器不理解 ,需要修改请求内容后再次发送
401 Unauthorized
表示发送的请求需要有HTTP认证信息或者是认证失败了
返回401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部以质询用户信息
403 Forbidden
表示对请求资源的访问被服务器拒绝了,通常是没有权限或者跨域。
404 Not Found
表示服务器找不到请求的资源
405 方法不被允许 (Method not allowed)
表示请示方式不对,注意检查method,比如后端定义post请求方式而我们用了get,delete,put,path等方式均报错。
5XX 服务器错误
500 Internal Server Error
表示服务器执行请求的时候出错了。
503 Service Unavailable
表示服务器超负载或正停机维护,无法处理请求