ajax发送请求及springMVC中controller接收及返回值的处理

1、ajax发送请求参数设置

	$.ajax({
			global: false,/*默认为true,是否为该请求触发全局Ajax事件处理程序。设置为false,以防止触发诸如ajaxStart或ajaxStop之类的全局处理程序。这可以用来控制各种Ajax事件。*/
			cache: false,/* 默认为true,浏览器缓存请求页面,如果设置为false,它将强制浏览器不缓存请求的页面。注意:将cache设置为false只能正确处理HEAD和GET请求。它的工作方式是将“_={timestamp}”附加到GET参数。其他类型的请求不需要该参数,除非在IE8中,当一个POST被发送到一个GET已经请求的URL时。 */
			async: false,//请求方式,默认为true,即异步请求,设为false即为同步请求
			type: "get",//请求类型常用get or post
			url: "xxx",//请求路径
			contentType: "application/json",/* 此参数的默认值为'application/x-www-form-urlencoded; charset=UTF-8',若未设置此参数则为默认值 */
			data: {'key','value'},//请求携带的参数
			dataType: "json",/*返回值类型,默认情况下会根据返回值猜测其数据类型,还是比较智能的*/
			beforeSend: function() {},/* 一个预请求回调函数,可用于修改jqXHR(在jQuery 1.4中)。在它被发送之前。使用它来设置自定义头,等等。jqXHR和settings对象作为参数传递。这是一个Ajax事件。在beforeend函数中返回false将取消请求。从jQuery 1.5开始,无论请求的类型如何,都会调用beforeend选项。 */
			success: function(data) {},
			complete: function(){},/* 当请求完成时(在执行成功和错误回调之后)要调用的函数。函数传递两个参数:jqXHR(在jQuery 1.4中)。对象和一个字符串,该字符串对请求的状态进行分类(“success”、“notmodified”、“nocontent”、“error”、“timeout”、“abort”或“parsererror”)。从jQuery 1.5开始,完整的设置可以接受一个函数数组。每个函数将依次调用。这是一个Ajax事件。 */
			error: function() {}/* 如果请求失败,将调用此函数。该函数接收三个参数:jqXHR(在jQuery 1.4.x,XMLHttpRequest)对象,描述发生的错误类型的字符串,如果发生了异常,则为可选异常对象。第二个参数(除了null)的可能值是“timeout”、“error”、“abort”和“parsererror”。当HTTP错误发生时,errorthrow接收HTTP状态的文本部分,例如“未找到”或“内部服务器错误”。从jQuery 1.5开始,错误设置可以接受一个函数数组。每个函数将依次调用。注意:跨域脚本和跨域JSONP请求不调用此处理程序。这是一个Ajax事件。 */	
	});

【备注】 以上ajax属性是较为常用的,若需用到其他属性请参考官方文档。

2、springMVC中controller控制层注解设置

当前端发送ajax请求时,通常我们的控制层也要设置对应的注解来接受请求,设置@RequestMapping(value = “/xxx”,method = RequestMethod.POST),若接收返回值则还需设置@ResponseBody注解,以下为注解@RequestMapping的属性解析:

  1. name 表示自定义一个当前映射的名称,默认值为空字符串;
  2. value 表示请求的路径path的别名,与类级别路径组合以此缩小查找范围,值为字符串数组格式;
  3. path 路径映射uri(例如“/ myPath.do”),路径映射uri可能包含占位符(例如“/ ${连接}”),数据格式为字符串数组;
  4. method 要映射到的HTTP请求方法,此参数值为枚举RequestMethod中的类型,有GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE;
  5. params 映射请求的参数,缩小主映射。数据格式为字符串数组。适用于任何环境的相同格式:“myParam=myValue”样式表达式序列,只有在发现每个参数都具有给定值时才映射请求。表达式可以通过使用“!”=“运算符,如"myParam!=myValue”。还支持“myParam”样式表达式,这些参数必须出现在请求中(允许有任何值)。最后,”!“myParam”样式表达式表示指定的参数不应该出现在请求中。参数映射被认为是在类型级别强制执行的限制。主路径映射(即指定的URI值)仍然必须惟一地标识目标处理程序,参数映射只是表示调用处理程序的先决条件。
  6. headers 映射请求的头,从而缩小主映射。适用于任何环境的相同格式:“My-Header=myValue”样式表达式序列,只有在发现每个头具有给定值时才映射请求。表达式可以通过使用“!”=“操作符,如"My-Header!=myValue”。还支持“My-Header”样式表达式,这样的header必须出现在请求中(允许有任何值)。最后,”!“My-Header”样式表达式表示指定的头不应该出现在请求中。还支持媒体类型通配符(*),用于Accept和Content-Type等头部。例如,@RequestMapping(value = “/something”, headers = "content-type=text/ *"),将请求与“text/html”、“text/plain”等内容类型匹配。
  7. consumes 限定请求的contentType类型,数据格式为字符串数组,当匹配设定数组值其中的至少一个时请求映射成功。例如,consumes = "text/plain" 或 consumes = {"text/plain", "application/*"},表达式可以通过使用“!”运算符来否定,如用 !“text/plain”,它用除“text/plain”之外的内容类型匹配所有请求。
  8. produces限定请求返回值的数据类型,其数据格式为字符串数组,当Accept匹配设定数组值其中的至少一个时请求映射成功。例如,produces = "text/plain"或produces = {"text/plain", "application/*"}或produces = MediaType.APPLICATION_JSON_UTF8_VALUE,它影响实际编写的内容类型,例如生成一个带有UTF-8编码的JSON响应MediaType。应该使用APPLICATION_JSON_UTF8_VALUE。表达式可以通过使用“!”运算符来否定,如in !“text/plain”,它将除“text/plain”之外的所有请求与Accept匹配。

【备注】 关于注解

  • @PathVariable :绑定占位符动态传递的值;
  • @RequestHeader:将request请求header部分的值绑定到方法参数上;
  • @CookieValue:将request请求header部分中cookie的值绑定到方法的参数上;
  • @RequestParam:表示方法参数应该绑定到web的注释请求参数,处理Content-Type 为 application/x-www-form-urlencoded编码的内容,提交方式GET、POST;
  • @RequestBody:常用来处理Content-Type不是application/x-www-form-urlencoded编码的内容,例如为application/json, application/xml等;
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值