Restful 常常会遇到的HTTP状态码


一、405 Method Not Allowed

请求方式错误,好比服务端约定PUT请求,结果客户端采用了GET;jquery

个人项目中是这样的,访问的服务真实存在,可是用PUT,POST访问的url是不存在的,因此出现这样的问题,就是访问的IP写成了别人的了。web


二、415 Unsupported Media Type

请求的Content-Type 错误,对于GET请求没有限制,可是对于其余请求方式,尤为是POST,则必须使用 ContentType:"application/json" ; 另外 dataType 是服务端返回类型,最好不要指定。ajax

这里还有一点须要注意,那就是服务端会采用 @RequestBody来获取参数,由于 RestController默认把 @RequestBody和@ResponseBody做为JSON处理,因此须要采用JSON格式接收json

contentType:"application/json"浏览器

三、400 Bad Request

表示请求报文中存在语法错误服务器

这个是和415有关联的,由于415必须指定请求给服务端的数据类型,若是指定了为"application/json" , 那么使用ajax发送数据是即data参数必须为json格式的字符串app

JSON.stringify(obj) ; 不能使用$('form').serialize();缘由就是这个方法内部使用了 $.param(obj)把参数转为 url的参数了,并且还进行了特殊字符转码,须要使用decodeURIComponent解码,jquery还把空格转为了+号url

data:JSON.stringify(obj)spa


四、403 Forbidden

就个人工程中是由于,Controller里面新增了delete方法,可是没有重启就直接前台ajax 调用 delete,换句话说若是没有对应的方法就直接访问,就会出现这个 403,其实 404 与之不一样的是估计就是请求方式的不一样致使的,因此,只要重启项目就OK了。code


五、413 Request Entity Too Large

Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)

发送POST请求数据时,因为表单数据太大,致使发生了一个客户端错误,若是有web服务器,好比Nginx那么是能够调节上传的数据的大小来解决这个问题,或者是能够把请求的参数变小。


六、302 Found 

应该是访问的URL地址和静态资源的文件夹路径冲突了,静态资源地址的文件夹也是。

临时性重定向,该状态码表示请求的资源已经被分配了新的URI,但愿用户本次能使用新的URI访问。


七、401 Authentication is possible but has failed

表示发送的请求须要有经过HTTP验证的认证信息,这个就是在使用SVN时,在浏览器打开须要用户输入用户名和密码。


八、404 Not Found

表示资源不存在,极可能是客户端URL地址写错了


图例:

相关文章
相关标签/搜索