随笔 - 19,  文章 - 26,  评论 - 3,  阅读 - 82434

一般按照正常的逻辑,我们在传递application/x-www-form-urlencoded时,参数应该这样写,但实际操作中发现一直获取不到参数。

ajax
  .create({
    baseURL: 'url',
    timeout: 10000,
    headers: { 'Content-Type': 'application/json' },
  })
  .post(
    'xxx/xxx/xxx',
    JSON.stringify({
      name: '',
      age: 12,
    }),
    {
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
      },
    }
  )
  .then(function(response) {
    console.log(JSON.stringify(response))
  })
  .catch(function(error) {
    console.log(error)
  })

按照上面所示的方法,在后端使用Python的Django项目获取参数

# 1. 获取前端传来的base64
            base64_str = request.POST.get('base64', '')

发现始终无法获取到参数,故推测是数据传输格式的问题。

方法一:[axios]添加两句代码,就可以正常获取

var qs = require('qs');

然后把JSON.strinify改为qs.stringify就可以了,qs.stringify将数据对象序列化成URL的形式,以&进行拼接。这样 request.POST.get(name) 才能取到值

方法二:[ajax]去掉JSON.stringify()处理,按照原始值处理即可。

参考:

https://www.cnblogs.com/bruce-gou/p/10251004.html
https://blog.csdn.net/yangwqi/article/details/115111906

posted on   豫华商  阅读(1046)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示