当前位置 博文首页 > 白徽的博客:微信小程序 post请求出现400,500等

    白徽的博客:微信小程序 post请求出现400,500等

    作者:[db:作者] 时间:2021-07-15 19:08

    微信小程序端使用post提交数据显示500

    先给大家看一下我微信端提交的方式(请看我代码区的注释)

    formsubmit:function(event){
    	//获取响应的数据
        var stu = event.detail.value;
        var that = this;
        wx.request({
          url: 'http://localhost:8888/students/insert',
          method:'POST',
          //我先用这个方式给大家访问一下,等会替换成注释的方式
          header:{
            // "Content-Type": "application/x-www-form-urlencoded"
            "Content-Type": "application/json"
          },
          data:{
          	//我要传输的数据
          	//我的后台是直接使用对象的方式来接收数据的。所以传输的数据都是这个对象的属性
            name:stu.name,
            email:stu.email,
            gender:that.data.gender,
            age:stu.age
          },
          success(res){
            console.log("sucess");
          }
        })
      }
    

    微信端这边的调试器显示的错误截图:
    错误截图

    那么我的后台是如何接收的,请看代码

    	@RequestMapping(value = "/insert",method = RequestMethod.POST)
        @ResponseBody
        //请看我的参数,是一个对象,从微信传过来的数据会自动包装成为对象。从而成为student对象
        public Integer insertStudent(Student student){
           Integer insertId = studentDao.insertStudent(student);
           System.out.println(student);
           return insertId;
        }
    

    后台显示错误
    错误显示还有一堆。错误提示
    错误提示
    那么现在我只改变微信那边的代码
    使用"Content-Type": "application/x-www-form-urlencoded"来提交数据。
    其他代码没有任何改变(注意注释)

    formsubmit:function(event){
        var stu = event.detail.value;
        var that = this;
        console.log(stu.name);
        wx.request({
          url: 'http://localhost:8888/students/insert',
          method:'POST',
          header:{
          	//这次我是用这个方式
            "Content-Type": "application/x-www-form-urlencoded"
            // "Content-Type": "application/json"
          },
          data:{
            name:stu.name,
            email:stu.email,
            gender:that.data.gender,
            age:stu.age
          },
          success(res){
            console.log("sucess");
          }
        })
      }
    

    微信这边的调试器系显示:
    调试器
    在来看后台代码及显示结果

    	@RequestMapping(value = "/insert",method = RequestMethod.POST)
        @ResponseBody
        public Integer insertStudent(Student student){
           Integer insertId = studentDao.insertStudent(student);
           System.out.println(student);
           return insertId;
        }
    

    调试器
    已经没有问题了。可以判断因为传输的方式不同产生了不同的结果。(就是你给的东西和别人期望的东西不一致呗

    微信小程序使用post提交数据,出现400错误

    我先给大家看一下,这边写的跟上边写的有什么区别。就是提交数据的时候。提交了不存在或者是不对的数据(请看注释)

    formsubmit:function(event){
        var stu = event.detail.value;
        var that = this;
        console.log(stu.name);
        wx.request({
          url: 'http://localhost:8888/students/insert',
          method:'POST',
          header:{
            "Content-Type": "application/x-www-form-urlencoded"
            // "Content-Type": "application/json"
          },
          data:{
            name:stu.name,
            email:stu.email,
            //这下边,本来gender是在data里面的,但中间我漏写了data
            gender:that.gender,
            age:stu.age
          },
          success(res){
            console.log("sucess");
          }
        })
      }
    

    微信调试器显示
    在这里插入图片描述

    那么后台调试器是否有什么显示呢?
    没有显示,也没有报错
    在这里插入图片描述我只要改过来提交的数据。就可以正常了。

    cs