zoukankan      html  css  js  c++  java
  • 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才是对的,对框架更友好。

  • 相关阅读:
    QT1 HelloWorld
    SDL2.0 播放YUV
    vim寄存器
    Makefile模板
    apue初学--DIR
    apue初学--平台的判断
    各种推导式
    文件操作
    list tuple dict set
    字符串和编码
  • 原文地址:https://www.cnblogs.com/mxxbc/p/14039001.html
Copyright © 2011-2022 走看看