未捕获的TypeError将FormData发送到ajax

时间:2015-12-14 00:36:57

标签: 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);
        }
    });

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

1 个答案:

答案 0 :(得分:1)

将JSON对象findstr附加到FormData上。

!