Ajax向cntroller传值,传值方式以及数据类型的对照

版权声明:本文为博主原创文章,转载请注明出处。 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

猜你喜欢

转载自blog.csdn.net/smallbabylong/article/details/83421789