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的属性解析:
- name 表示自定义一个当前映射的名称,默认值为空字符串;
- value 表示请求的路径path的别名,与类级别路径组合以此缩小查找范围,值为字符串数组格式;
-
path 路径映射uri(例如“/
myPath.do
”),路径映射uri可能包含占位符(例如“/ ${连接}”),数据格式为字符串数组; - method 要映射到的HTTP请求方法,此参数值为枚举RequestMethod中的类型,有GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE;
- params 映射请求的参数,缩小主映射。数据格式为字符串数组。适用于任何环境的相同格式:“myParam=myValue”样式表达式序列,只有在发现每个参数都具有给定值时才映射请求。表达式可以通过使用“!”=“运算符,如”myParam!=myValue”。还支持“myParam”样式表达式,这些参数必须出现在请求中(允许有任何值)。最后,”!“myParam”样式表达式表示指定的参数不应该出现在请求中。参数映射被认为是在类型级别强制执行的限制。主路径映射(即指定的URI值)仍然必须惟一地标识目标处理程序,参数映射只是表示调用处理程序的先决条件。
-
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”等内容类型匹配。 -
consumes 限定请求的contentType类型,数据格式为字符串数组,当匹配设定数组值其中的至少一个时请求映射成功。例如,
consumes = "text/plain" 或 consumes = {"text/plain", "application/*"}
,表达式可以通过使用“!”运算符来否定,如用 !“text/plain”,它用除“text/plain”之外的内容类型匹配所有请求。 -
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等;
版权声明:本文为qq_40672583原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。