版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/smallbabylong/article/details/83421789
- ajax向controller传值
//向后台发送处理数据
//contentType: 告诉服务器,我要发什么类型的数据
// dataType:告诉服务器,我要想什么类型的数据,如果没有指定,那么会自动推断是返回 XML,还是JSON,还是script,还是String。- 常见contentType
- 常见的媒体格式类型如下:
text/html : HTML格式
text/plain :纯文本格式
text/xml : XML格式
image/gif :gif图片格式
image/jpeg :jpg图片格式
image/png:png图片格式
以application开头的媒体格式类型:
application/xhtml+xml :XHTML格式
application/xml : XML数据格式
application/atom+xml :Atom XML聚合格式
application/json : JSON数据格式
application/pdf :pdf格式
application/msword : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
另外一种常见的媒体格式是上传文件之时使用的:
multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式
- ajax提交
$.ajax({
type: "POST", //用POST方式传输
dataType: "Json", //服务器返回的数据类型 可选XML ,Json jsonp script html text等
contentType:"application/x-www-form-urlencoded;charset=UTF-8",//默认值可根据controller map 的consumes的要求设置
url: 'http://localhost:8080/user/sendCode', //目标地址
data:{mail:email} ,//可以是"mail="+email 或者 {"mail":email}
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("错误!"+XMLHttpRequest+textStatus+errorThrown);
},
success: function (msg){
console.log(msg);
alert(msg);
}
});
@RequestMapping( value = "/sendCode")
@ResponseBody//指定返回数据为json,不指定的话请求包含dataType为json的请求不能获得数据
public Info sendCode(@RequestParam String mail, HttpSession session) {
//代码
}
- controller获取数据
当请求contentType为application/json时参数用@RequsetBody注解,参数是json时可以直接用实体类接收参数,以下代码ActiveCodeBody 为实体类,注意实体类一定要包含默认无参构造函数
//consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
//produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
@PostMapping(value = "/postGetCode",produces= "application/json;charset=UTF-8",consumes = "application/json")
@ResponseBody
public Info verifyEmail(@RequestBody ActiveCodeBody body){
//代码
}
为application/x-www-form-urlencoded时用@RequestParam