美文网首页
FormData如何向后端传递数组

FormData如何向后端传递数组

作者: 别吵让我睡觉 | 来源:发表于2021-01-22 18:03 被阅读0次

    问题所在:

    这个问题是在上传文件相关功能中发现的,后端要求FormData中封装一个数组类型的参数,试了几次发现API请求体中的对应参数类型并不是数组,下面给出我的几次尝试过程:

    尝试过程:

    1.刚开始尝试最简单粗暴的一种

    let formDate = new FormData();
    formDate.append("file", file);
    formDate.append('list',['1','2','3'])
    

    然后去看请求体的时候发现,虽然封装的list参数是数组,但是却是字符串,后端得到的数据 '1,2,3'

    2.接着上网查了一些资料,发现大多数是这种写法:

    var json_arr = JSON.stringify(arr);
    

    在这里贴一个链接:https://blog.csdn.net/chuijiongyu7406/article/details/101021528?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control

    但是并没有解决我的问题,后端获取的还是字符串,只不过变成了'['1','2','3']',其实这里后端将字符串转换成数组也就解决了问题,但是后端不同意😶😑🙄

    解决方法:

    在一次尝试中,尝试了一种写法:

    let formDate = new FormData();
    formDate.append(("file", file);
    for(let i=0;i<list.length;i++){
        formDate.append('list',list[i])
      }
    }
    

    后端成功的得到了['1','2','3'],这个数组类型的参数,附上请求体里面的参数:

    请求体.png

    相关文章

      网友评论

          本文标题:FormData如何向后端传递数组

          本文链接:https://www.haomeiwen.com/subject/xsxezktx.html