渺沧海一粟667 2021-08-02 14:33 采纳率: 71.4%
浏览 70
已结题

ajax传递中文参数问题。

写代码要修改用户的信息,写了三个ajax,第一个写完测试没有问题,后面俩逻辑一样的就直接赋值了,结果复制的第二个不好使。中文会出现%乱码

                          $.ajax({ //返回参数正常
                            url: '/editAdmin/' + id + '/' + userName + '/' + password,
                            type: 'post',
                            contentType:'application/json;charset=utf-8',
                            dataType: 'text',
                            data: {
                                'id': id,
                                'userName': userName,
                                'password': password,
                            },
                            success: function (res) {
                                if (res == "success") {
                                    layer.msg('提交成功');
                                } else {
                                    layer.msg("提交失败");
                                }
                            }
                        })
                        $.ajax({//中文参数乱码
                            url: '/editTeach/' + teacherId + '/' + userName + '/' + age + '/' + sex + '/' + dept + '/' + phone + '/' + professional,
                            type: 'post',
                            contentType: 'application/json;charset=utf-8',
                            dataType: 'text',
                            data: {
                                'teacherId': teacherId,
                                'userName': userName,
                                'age': age,
                                'sex': sex,
                                'dept': dept,
                                'phone': phone,
                                'professional': professional
                            },
                            success: function (res) {
                                if (res == "success") {
                                    layer.msg('提交成功');
                                } else {
                                    layer.msg("提交失败");
                                }
                            }
                        })

在第二个ajax之前打印要传递的参数是可以获取到的,没有乱码,一进ajax就乱码了。三个ajax基本都是一样的其他两个都能传中文参数。
img


                        $.ajax({
                            url: '/editStu/' + studentNumber + '/' + userName + '/' + age + '/' + studentClass + '/' + grade,
                            type: 'post',
                            dataType: 'text',
                            contentType: 'application/json;charset=utf-8',
                            data: {
                                'studentNumber': studentNumber,
                                'userName': userName,
                                'age': age,
                                'studentClass': studentClass,
                                'grade': grade
                            },
                            success: function (res) {
                                if (res == "success") {
                                    layer.msg('提交成功');
                                } else {
                                    layer.msg("提交失败");
                                }
                            }
                        })

controller代码

    @RequestMapping("/editStu/{studentNumber}/{userName}/{age}/{studentClass}/{grade}")
    @ResponseBody
    public String editStu(@PathVariable("studentNumber") int studentNumber, @PathVariable("userName") String userName, @PathVariable("age") int age, @PathVariable("studentClass") String studentClass, @PathVariable("grade") int grade) {
        int res = userService.updateStudent(studentNumber, userName, age, studentClass, grade);
        if (res > 0) {
            return "success";
        } else {
            return "fail";
        }
    }

    @RequestMapping("/editTeach/{teacherId}/{userName}/{age}/{dept}/{phone}/{professional}")
    @ResponseBody
    public String editTeach(@PathVariable("teacherId") int teacherId, @PathVariable("userName") String userName, @PathVariable("age") int age, @PathVariable("dept") String dept, @PathVariable("phone") String phone,  @PathVariable("sex") String sex,@PathVariable("professional") String professional) {
        int res = userService.updateTeacher(teacherId, userName, age, dept, phone, sex,professional);
        if (res > 0) {
            return "success";
        } else {
            return "fail";
        }
    }

    @RequestMapping("/editAdmin/{id}/{userName}/{password}")
    @ResponseBody
    public String editAdmin(@PathVariable("id") int id,@PathVariable("userName")String userName,@PathVariable("password")String password){
        int res = userService.updateAdmin(id,userName,password);
        if (res > 0) {
            return "success";
        }else {
            return "fail";
        }
    }

  • 写回答

5条回答 默认 最新

  • 哆比哆比 2021-08-02 14:43
    关注

    你的接口既然post传参了,为什么还要在url上加各种参数?你打印你下你的那些参数是不是都有值

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月3日
  • 创建了问题 8月2日

悬赏问题

  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥60 SOL语句中Where查询中的 from to 语句能不能从小到大换成从大到小(标签-SQL)
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 请教一下c语言的代码里有一个地方不懂
  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))