JSON字符串多了一个等号

Ajax向Java后台发送Json数据,默认请求的ContentType是application/x-www-form-urlencoded;charset=UTF-8 ,导致后台接收到的Json数据末尾多一个“=”。
解决方法:将参数 contentType 的值改成 application/json; charset=utf-8,

   var value = obj.value
       ,data = obj.data
       ,field = obj.field;
    
   var json = {"id":data.id};
   json[field] = value;
   var param = JSON.stringify(json);

   $.ajax({
        type: "POST",
        url: '/student/updateStudentInfo',
        data: param,
     /* contentType: application/x-www-form-urlencoded;charset=UTF-8 */
        contentType: "application/json; charset=utf-8",//此处不能省略
        success: function (data) {
            if (data.code == 1) {
                layer.msg('修改成功!', {icon: 1, time: 2000, shade: 0.2});
            } else {
                layer.msg('修改失败!', {icon: 2, time: 3000, shade: 0.2});
            }
        }
    })

网上解释:

application/x-www-form-urlencoded;charset=UTF-8是一种键值对结构,也就是类似这样的:
name=tim&age=20
多出来的等号其实就是因为把内容作为key了,而value是空着的,所以传输数据带上正确的content-type才是对的,对框架更友好。

原文地址:https://www.cnblogs.com/mxxbc/p/14039001.html