Spring MVC,HTTP Status 400 ,jQuery

一、先看下4xx错误的说明

【转载】 http status 400,http 400,400 错误

【参考】 status code 400, Bad Request (§10.4.1)

4 请求失败4xx

4xx应答定义了特定服务器响应的请求失败的情况。客户端不应当在不更改请求的情况下重新尝试同一个请求。(例如,增加合适的认证信息)。不过,同一个请求交给不同服务器也许就会成功。

4.1 400 Bad Request

请求中的语法错误。Reason-Phrase应当标志这个详细的语法错误,比如”Missing Call-ID header field”。

4.2 401 Unauthorized

请求需要用户认证。这个应答是由UAS和注册服务器产生的,当407(Proxy Authentication Required)是proxy服务器产生的。

4.3 402 Payment Required

保留/以后使用

4.4 403 Forbidden

服务端支持这个请求,但是拒绝执行请求。增加验证信息是没有必要的,并且请求应当不被重试。

4.5 404 Not Found

服务器返回最终信息:用户在Request-URI指定的域上不存在。当Request-URI的domain和接收这个请求的domain不匹配的情况下, 也会产生这个应答。

4.6 405 Method Not Allowed

服务器支持Request-Line中的方法,但是对于这个Request-URI中的地址来说,是不允许应用这个方法的。

应答必须包括一个Allow头域,这个头域包含了指定地址允许的方法列表。

4.7 Not Acceptable

请求中的资源只会导致产生一个在请求中的Accept头域外的,内容无法接收的错误。

4.8 407 Proxy Authentication Required

这个返回码和401(Unauthorized)很类四,但是标志了客户端应当首先在proxy上通过认证。SIP对认证的访问请参见26节和22.3节。

这个返回码用于应用程序访问通讯网关(比如,电话网关),而很少用于被叫方要求认证。

4.9 408 Request Timeout

在一段时间内,服务器不能产生一个终结应答,例如,如果它无法及时决定用户的位置。客户端可以在稍后不更改请求的内容然后重新尝试请求。

4.10 410 Gone

请求的资源在本服务器上已经不存在了,并且不知道应当把请求转发到哪里。这个问题将会使永久性的。如果服务器不知道,或者不容易检测,这个资源消失是临时性质的还是永久性质的,那么应当返回一个404(Not Found)。

4.11 413请求实体过大。

服务器拒绝处理请求,因为这个请求的实体超过了服务器希望或者能够处理的大小。这个服务器应当关闭连接避免客户端重发这个请求。

如果这个情况是暂时的,那么服务端应当包含一个Retry-After头域来表明这是一个暂时的故障,并且客户端可以过一段时间再次尝试。

4.12 414 Request-URI Too Long

服务器拒绝这个请求,因为Request-URI超过了服务器能够处理的长度。

4.13 415 Unsupported Media Type

服务器由于请求的消息体的格式本服务器不支持,所以拒绝处理这个请求。这个服务器必须根据内容的故障类型,返回一个Accept,Accpet-Encoding,或者Accept-Language头域列表。UAC根据8.1.3.5节定义的方法处理这个应答。

4.14 416 Unsupported URI Scheme

服务器由于不支持Request-URI中的URI方案而终止处理这个请求。客户端处理这个应答参照8.1.3.5。

4.15 Bad Extension

服务器不知道在请求中的Proxy-Require(20.29)或者Require(20.32)头域所指出的协议扩展。服务器必须在Unsupported头域中列出不支持的扩展。UAC处理这个应答请参见8.1.3.5

4.16 421Extension Required

UAS需要特定的扩展来处理这个请求,但是这个扩展并没有在请求的Supported头域中列出。具有这个应答码的应答必须包含一个Require头域列出所需要的扩展。

UAS不应当使用这个应答除非它真的不能给客户端提供有效的服务。相反,如果在Support头域中没有列出需要的扩展,服务器应当根据基准的SIP兼容的方法和客户端支持的扩展来进行处理。

4.17 423 Interval Too Brief

服务器因为在请求中设置的资源刷新时间(或者有效时间)过短而拒绝请求。这个应答可以用于注册服务器来拒绝那些Contact头域有效期过短的注册请求。这个应答的用法和相关的Min-Expires头域在10.2.8,10.3,20.23节中介绍和说明。

4.18 480 Temporarily Unavailable

请 求成功到达被叫方的终端系统,但是被叫方当前不可用(例如,没有登陆,或者登陆了但是状态是不能通讯,或者有”请勿打扰”的标记)。应答应当在Retry -After中标志一个合适的重发时间。这个用户也有可能在其他地方是有效的(在本服务器中不知道)。Reason-Phrase(原因短句)应当提示更 详细的原因,为什么被叫方暂时不可用。这个值应当是可以被UA设置的。状态码486(Busy Here)可以用来更精确的表示本请求失败的特定原因。

这个状态码也可以是转发服务或者proxy服务器返回的,因为他们发现Request-URI指定的用户存在,但是没有一个给这个用户的合适的当前转发的地址。

4.19 481 Call/Transaction Does Not Exist

这个状态表示了UAS接收到请求,但是没有和现存的对话或者事务匹配。

4.20 482 Loop Detected

服务器检测到了一个循环(16.3/4)

4.21 483 Too Many Hops

服务器接收到了一个请求包含的Max-Forwards(20.22)头域是0

4.22 484 Address InComplete

服 务器接收到了一个请求,它的Request-URI是不完整的。在原因短语中应当有附加的信息说明。这个状态码可以和拨号交叠。在和拨号交叠中,客户端不 知道拨号串的长度。它发送增加长度的字串,并且提示用户输入更多的字串,直到不在出现484(Address Incomplete)应答为止。

4.23 485 Ambiguous

Request -URI是不明确的。应答可以在Contact头域中包含一个可能的明确的地址列表。这个提示列表肯囊个在安全性和隐私性对用户或者组织造成破坏。必须能 够由配置决定是否以404(NotFound)代替这个应答,又或者禁止对不明确的地址使用可能的选择列表。

给带有Request-URI的请求的一个应答例子:

sip: [email protected]:

SIP/2.0 485 Ambiguous

Contact: Carol Lee

Contact: Ping Lee

Contact: Lee M.Foote

部分email和语音邮箱系统提供了这个功能。这个状态码和3xx状态码不同:对于300来说,它是假定同一个人或者服务有不同的地址选择。所以对3xx来说,自动选择系统或者连续查找就有效,但是对485(Ambiguous)应答来说,一定要用户的干预。

4.24 486 Busy Here

当 成功联系到被叫方的终端系统,但是被叫方当前在这个终端系统上不能接听这个电话,那么应答应当回给呼叫方一个更合适的时间在Retry-After头域重 试。这个用户也许在其他地方有效,比如电话邮箱系统等等。如果我们知道没有其他终端系统能够接听这个呼叫,那么应当返回一个状态码600(Busy Everywhere)。

4.25 487 Request Terminated

请求被BYE或者CANCEL所终止。这个应答永远不会给CANCEL请求本身回复。

4.26 488 Not Acceptable Here

这个应答和606(Not Acceptable)有相同的含义,但是只是应用于Request-URI所指出的特定资源不能接受,在其他地方请求可能可以接受。

包含了媒体兼容性描述的消息体可以出现在应答中,并且根据INVITE请求中的Accept头域进行规格化(如果没有Accept头域,那么就是application/sdp)。这个应答就像给OPTIONS请求的200(OK)应答的消息体一样。

4.27 491 Request Pending

在同一个对话中,UAS接收到的请求有一个依赖的请求正在处理。14.2描述了这种情况应当怎样解决。

4.28 493 Undecipherable

UAS接收到了一个请求,包含了一个加密的MIME,并且不知道或者没有提供合适的解密密钥。这个应答可以包含单个包体,这个包体包含了合适的公钥,这个公钥用于给这个UAS通讯中加密包体使用的。

http status 400,http 400,400 错误

二、Spring MVC出现:HTTP status 400 The request sent by the client was syntactically incorrect.

首先,400 是请求中的语法错误。

那么,请求的语法有哪些呢?

遇见的语法错误有:

表单提交的name的值和服务器(Spring MVC中的Controller)对应的参数的类型不一致(怎么不一致的?就像服务器本来接受的是整数(int)的,但是客户端传递的却是一个浮点数(double,float))。

那么可不可通过400语法错误来预测服务对应的参数呢?

如果是使用Spring MVC作为服务器端的话,我们可能会定义一个Bean来绑定前台传来的参数(我想只要使用过Spring MVC的人都会这么做),我们是不是可以通过form表单的name的具体值来输入可能的值,来预测Bean中对应字段的类型呢(可以一试)?

小结,Spring MVC出现400语法 错误的话,应该要找的客户端传递的值和Controller对应的参数的类型是否一致,并且Spring MVC的后台是不会报错的,如果使用了Log4J的话可以将日志设置debug级别

log4j.rootLogger=DEBUG

示例如下:

Field error in object ‘article‘ on field ‘type‘: rejected value [11.0]; codes [typeMismatch.article.type,typeMismatch.type,typeMismatch.java.lang.Integer,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [article.type,type]; arguments []; default message [type]]; default message [Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property ‘type‘; nested exception is java.lang.NumberFormatException: For input string: "11.0"]
2015-04-28 21:42:23 DEBUG org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:134) - Resolving exception from handler [public java.lang.Object org.jast.mybatis.cms.controller.ArticleController.add(org.jast.mybatis.cms.entity.Article)]: org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object ‘article‘ on field ‘type‘: rejected value [11.0]; codes [typeMismatch.article.type,typeMismatch.type,typeMismatch.java.lang.Integer,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [article.type,type]; arguments []; default message [type]]; default message [Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property ‘type‘; nested exception is java.lang.NumberFormatException: For input string: "11.0"]
2015-04-28 21:42:23 DEBUG org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:134) - Resolving exception from handler [public java.lang.Object org.jast.mybatis.cms.controller.ArticleController.add(org.jast.mybatis.cms.entity.Article)]: org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object ‘article‘ on field ‘type‘: rejected value [11.0]; codes [typeMismatch.article.type,typeMismatch.type,typeMismatch.java.lang.Integer,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [article.type,type]; arguments []; default message [type]]; default message [Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property ‘type‘; nested exception is java.lang.NumberFormatException: For input string: "11.0"]
时间: 2024-08-06 03:25:26

Spring MVC,HTTP Status 400 ,jQuery的相关文章

Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点

Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点的 json 报文 问题 问题描述起来比较拗口,其实就是用Spring MVC时,如何将对象映射成 json 报文时不把对象作为json的根节点.即使用@ResponseBody的效果. 比如,默认情况下,使用ModelAndView的addObject(key,object)或者ModelMap的addAttribute(key,object)保存完Java对象,然后交给Srping的视图解析器解析成json时,

Spring MVC多图片上传,多值上传

servlet-context.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.spr

spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable

1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(value = { "/actor_details" }, method = { RequestMethod.POST }) @ResponseBody public ResultObject actorDetails(@RequestBody ActorDetailsRequest req)

Spring MVC自定义统一异常处理类,并且在控制台中输出错误日志

在使用SimpleMappingExceptionResolver实现统一异常处理后(参考Spring MVC的异常统一处理方法), 发现出现异常时,log4j无法在控制台输出错误日志.因此需要自定义一个继承至SimpleMappingExceptionResolver的 RrtongMappingExceptionResolver类,在RrtongMappingExceptionResolver中通过 log.error(ex.getMessage())的方式输出日志到控制台上.以下是具体的配

基于代码生成器的快速开发框架,spring mvc html5 bootstrap java框架,jeeplus框架源码下载

开源网址:http://www.jeeplus.org JeePlus是一款基于代码生成器的智能快速开发平台,可以帮助解决java项目中80%的重复工作,让开发者更多关注业务逻辑.既能快速提高开发效率,帮助公司节省人力成本,同时不失灵活性. JeePlus快速开发宗旨是:简单功能由代码生成器生成使用,复杂业务采用表单自定义,只需要写极少代码,即可实现复杂的业务逻辑. JeePlus采用了目前极为流行的扁平化响应式的设计风格,可以完美兼容电脑,pad,手机等多个平台.前端UI采用INSPINA实现

用Spring MVC创建Web应用范例,轻松入门

本文通过一个浅显易懂的范例介绍Spring MVC的框架和以及运用方法.本文的参考书籍是<Tomcat与Java Web开发技术详解>第三版,作者:孙卫琴.本文所用的软件版本为:Window10,JDK10,Tomcat9.本文所涉及的源代码的下载网址为:http://www.javathinker.net/javaweb/mvc-app.rar 为了把Spring MVC运用到Web应用中,首先需要下载与操作系统对应的Spring软件包,下载地址为https://repo.spring.io

IDEA创建一个Spring MVC 框架Java Web项目,Gradle构建

注:此篇有些细节没写出,此文主要写重要的环节和需要注意的地方,轻喷 新建项目 选择Gradle , 勾选java 和 web.之后就是设定项目路径和名称,这里就不啰嗦了. build.gradle文件下导入所需要的包,刷新一下. 1 group 'com.benjious.createTest' 2 version '1.0-SNAPSHOT' 3 4 apply plugin: 'java' 5 apply plugin: 'war' 6 7 sourceCompatibility = 1.8

Spring mvc创建的web项目,如何获知其web的项目名称,访问具体的链接地址?

我们创建的springmvc项目:jstz_random,包名:com.redin.jstz,那么其web项目的名称为jstz_random.这个也是我们访问的连接中的projectname 1.可以通过查看web属性来找到web项目名称 右击项目--> Properties-->web Project Settings,即可看到web项目名称.其实项目名称为:zjrandom,这种设置也是挺坑人的. 当然这里也可以进行修改. 2.通过服务启动日志,重新编译,重新load的时候可看到 当然细心

【java学习】spring mvc 公共dao的实现,定义基本的增删改查

接口类: package com.blog.db.dao; import com.blog.util.Pagination; import java.util.List; public interface PublicDao<T> { public void setMapper(Class t); public void setTableName(String tn); public List<T> queryList(Pagination pagination); public