jquery ajax post get 提交请求后台服务器是,发送信息至服务器时内容编码类型。cententType详解

ajax请求后台controller的时候发送过去的内容编码类型:

类型一:contentType: “application/json; charset=utf-8”,
类型二:contentType: “text/xml”,
类型三:contentType:”application/x-www-form-urlencoded”,
data:”json”,data:”text”//表示的是从服务器返回的类型

用类型一:contentType: “application/json; charset=utf-8”, 发送数据内容格式给服务器
后台用@RequestBody接收,例子如下:

<script>
   function register() {
var params = {
               "username": $("#username").val(),
               "phone": $("#phone").val(),
               "password": $("#password").val(),
               "idNum": $("#idNum").val(),
               "realName": $("#realName").val(),
               }
               $.ajax({
                       type: "post",
                       url: "/doRegister",
                       data: JSON.stringify(params),
                       dataType: 'text',//特别注意返回类型未text,之前用json导致执行error,还不知道原因为啥,求解
                       contentType: 'application/json;charset=UTF-8',//后台用@RequestBody接收,可用实体接收或字符串接收都可以
                       success: function (data) {
                       //ajax发送的url到控制层不会进行页面跳转,当请求成功以后,请求会回success,所以可在此再写一遍url进行跳转
                            $(location).attr('href', 'login.html');//这是$.ajax({...});是jQuery用的页面跳转方法,建议使用
                            //window.location.href = "/login"; //原生的js的页面跳转,有可能导致无法识别 
                       },
                   error:function (e) {
                       console.log("error")
                       alert("error+e= "+e)
                   }
               })

    }
</script>


后台controller:
  @RequestMapping(value = "/doRegister",method=RequestMethod.POST)
    @ResponseBody
/*  public String doRegister(@RequestParam("username") String username  ,@RequestParam(value = "password",required = false) String password
            ,@RequestParam(value = "phone",required = false) String phone ,@RequestParam(value = "idNum",required = false) String idNum
            ,@RequestParam(value = "realName",required = false) String realName){
        logger.info("doRegister() 方法被调用");
             boolean result=userService.registerData(username,phone,password,idNum,realName);*/
    public String doRegister(@RequestBody UserVO uservo){ //实体接收方式
        System.out.println("doRegister= realName===="+uservo.getRealName());
          //注册方法....
        if(result==true){
            return "login";
        }
        return "register";
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值