javascript - 发送 FormData 到 ajax 时未捕获 TypeError 非法调用

标签 javascript json ajax

我正在尝试将文件发送到服务器进行一些处理。使用下面的代码可以完美地工作:

var formData = new FormData();
formData.append('file', $('#fileUpload')[0].files[0]);
options = JSON.stringify(options); // {"key": "value"}

$.ajax({
        url: "url",
        type: "POST",
        data: formData,
        processData: false,
        contentType: false,
        success: function (data) {

        },
        error: function (msg) {
            showMsg("error", msg.statusText + ". Press F12 for details");
            console.log(msg);
        }
    });

但是,我想做的不仅是发送 FormData,还发送 json 对象。我正在尝试做如下的事情:

var formData = new FormData();
formData.append('file', $('#fileUpload')[0].files[0]);
options = JSON.stringify(options); // {"key": "value"}

$.ajax({
        url: "url",
        type: "POST",
        data: { "formData": formData, "options": options },
        //dataType: "json",
        //processData: false,
        //contentType: false,
        success: function (data) {

        },
        error: function (msg) {
            showMsg("error", msg.statusText + ". Press F12 for details");
            console.log(msg);
        }
    });

当我这样做时,我收到错误消息未捕获的类型错误非法调用根据我的研究,我找不到任何像这样发送表单数据的示例。这是否需要重构,是否有其他方法可以将 json 对象与表单数据一起发送?

最佳答案

将 JSON 对象 options 附加到 FormData 即可。

var formData = new FormData();
formData.append('file', $('#fileUpload')[0].files[0]);
options = JSON.stringify(options);
formData.append('options', options); //append it with the form data and take it apart on the server

$.ajax({
    url: "url",
    type: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success: function (data) {

    },
    error: function (msg) {
        showMsg("error", msg.statusText + ". Press F12 for details");
        console.log(msg);
    }
});

关于javascript - 发送 FormData 到 ajax 时未捕获 TypeError 非法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34258161/

相关文章:

javascript - Eslint:禁用除 1 条规则之外的所有规则?

c# - HttpClient POST 到 WCF 返回 400 错误请求

java - Firebase 数据映射到 Java 类

javascript - 如何从远程服务器获取jsonp?

javascript - 加载插件时出错

javascript - 从jsp页面使用javascript获取元素的值

javascript - Protractor - 如果 element.getAttribute ('class' )发生变化,则退出嵌套 for 循环

javascript - 从 OpenLayers 功能中删除所有弹出窗口

ios - 如果某些数据为 NSNull,如何正确解析 JSON 数据

javascript - 仪表板跨域 AJAX 与 jquery