ajax用formdata向后端传递json数据报错

问题描述

ajax用formdata向后端传递json数据报错,formdata中的数据变成了[object]这种格式的,请各位路过的大佬进来给小弟指导一二

问题出现的环境背景及自己尝试过哪些方法

因为我正常的data放入是一个json,其他的字段都是string,只有file这个字段是file类型的,用JSON.stringify去格式化参数,得到的file是个{}(空值)

相关代码

粘贴代码文本(请勿用截图)

    let formData = new FormData();
    formData.append('file', document.getElementById("file").files[0]);
    let files = formData.get("file");
     $.ajax({
        type: "post",
        url: baseIp + '/commandCenter/plan/uploadPlan',
        async: false,
        processData: false,
        //contentType: "application/x-www-form-urlencoded",
        dataType: " application/json;charset=UTF-8",
        data: params,
        success: (res) => {
          debugger;
          //let res = JSON.parse(data);
          if (res.stateCode !== 200) {
            this.$message({
              type: "fail",
              message: res.message
            });
            return;
          } else {
            this.$message("上传成功成功");

          }
        }
      });

你期待的结果是什么?实际看到的错误信息又是什么?

image.png
现在就是可以用json正常传给后端

阅读 3.3k
3 个回答

Content-Type 應該是 multipart/form-data

你的dataTypecontentType搞混了吧?

dataType的格式一般如下(我从网上找的例子):

$.ajax({
                url: getAbsoluteUrl('score/findScore'),
                type: 'POST',
                dataType: 'json',    //这里是关键
                success: function (res) {
                    alert(res);
                },
                error: function (msg) {
                  alert(msg);
                }

参数不对吧key=${value}&key=${value}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题