微信小程序使用POST请求后台数据失败,报错为Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported

 

 

文章目录

 错误代码

后台接口

微信小程序请求方式

错误原因

 解决方法

正确代码

 另外,打印返回的结果对象res时,不能使用字符串拼接,否则只能得到[Object object] 巨坑!

参考文章


 错误代码

后台接口

    /**
     * 隐患随手拍 我的上报
     * @param params
     * @return
     */
    @PostMapping("/list")
    @ResponseBody
    public List<WxHdVo> getHdVoListByWxUser(@RequestBody Map<String, String> params) {
        List<WxHdVo> hdVos = new LinkedList<>();
        System.out.println(params.get("sbr"));
        List<ScHd> scHds = scHdService.selectScHdForWx(params.get("sbr"), params.get("fcqk"));
        System.out.println(scHds.size());
        for (ScHd scHd : scHds) {
            List<ScHdImg> scHdImgs = scHdImgService.selectScHdImgListByHdId(scHd.getId());
            hdVos.add(new WxHdVo(scHd.getSbr(), scHd.getSbsj(), scHd.getYhdd(), scHd.getYhbw(), scHd.getYhms(), scHdImgs,
                    scHd.getZgzrdwMc(), scHd.getZgcs(), scHd.getZgqx(), scHd.getZgqk(), scHd.getFcdwMc(), scHd.getFcqk(), scHd.getYhxcrq(), scHd.getBz()));
        }
        return hdVos;
    }
}

微信小程序请求方式

         wx.request({
            url: 'http://localhost:8081/wx/hd/list',
            method:"POST",
            data:{
              "sbr": "gy",
              "fcqk": "2"    
            },
            header:{'content-type': 'application/x-www-form-urlencoded'}, 
            success:res=>{
                console.log(res);
            }
          })

错误原因

  • 第一,请求的数据类型是JSON格式,而后台接收前端小程序传来的数据类型是JSON字符串,后端的Spring无法识别与转换这个JSON格式的数据
  • 第二,小程序请求头的Content-Type值与请求体data数据之间不匹配导致请求出错。

 解决方法

因此我们将小程序请求头和data请求体改成相匹配的即可

  • 第一步,使用JSON.stringfy()将JSON对象转换成JSON字符串来传递
  • 第二步,将请求头中content-type值改为'application/json'

 


 

正确代码

小程序请求方式

     wx.request({
            url: 'http://localhost:8081/wx/hd/list',
            method:"POST",
            data:JSON.stringify({
              "sbr": "gy",
              "fcqk": "2"    
            }),
          header:{'content-type': 'application/json'},
            success:res=>{
                console.log(res);
            }
          })
    },

这样修改后便成功拿到了后端接口的数据!!!


 另外,打印返回的结果对象res时,不能使用字符串拼接,否则只能得到[Object object] 巨坑!

 


 

参考文章

Jmeter发送post请求报错Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supportedicon-default.png?t=N0U7https://www.cnblogs.com/justyoutiao/p/11385964.html微信小程序和springboot后台交互,小程序如何传递参数后台如何接收,和一些报错问题icon-default.png?t=N0U7https://blog.csdn.net/weixin_45862170/article/details/114600756?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167534032516800225538724%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167534032516800225538724&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-114600756-null-null.142^v72^insert_down4,201^v4^add_ask&utm_term=%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8Fspringboot%E5%89%8D%E5%90%8E%E7%AB%AF%E4%BA%A4%E4%BA%92&spm=1018.2226.3001.4187微信小程序以post方式提交icon-default.png?t=N0U7https://blog.csdn.net/lff1123/article/details/80254282?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167534645216800225552748%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167534645216800225552748&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-80254282-null-null.142^v72^insert_down4,201^v4^add_ask&utm_term=%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%8F%91%E9%80%81post%E8%AF%B7%E6%B1%82&spm=1018.2226.3001.4187


小程序坑真的多,故分享解决方案,让更多的人少走弯路

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aricl.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值