Javascript 未捕获类型错误:发送数据时非法调用

Javascript 未捕获类型错误:发送数据时非法调用,javascript,jquery,Javascript,Jquery,我在向后端发送数据时遇到此错误。为什么?我甚至将processData和contentType设置为false,但仍然会出现此错误。您的getJSON()语法错误。您试图做的是向目标发送POST请求,因此请使用$.ajax()。将数据对象作为第二个参数,但您将发送一个ajax选项对象作为第二个参数 $("#upload").on("change", function (evt) { var data = new FormData(); var file = $('#upload'

我在向后端发送数据时遇到此错误。为什么?我甚至将processData和contentType设置为false,但仍然会出现此错误。

您的
getJSON()
语法错误。您试图做的是向目标发送POST请求,因此请使用
$.ajax()
。将数据对象作为第二个参数,但您将发送一个ajax选项对象作为第二个参数

$("#upload").on("change", function (evt) {
    var data = new FormData();
    var file = $('#upload').prop('files');
    data.append('file', file);

    var req = {
        action:'uploadFile',
        data:  data,
        type: 'POST',
        processData: false,
        contentType: false,

    };

    this.getJSON('upload.php', req, function(serverData)
    {
        console.log(serverData);
    }); 
});

它不调用我的函数。@ehah也将其添加到表单数据中
$("#upload").on("change", function (evt) {
    var data = new FormData();
    $.each(this.files, function (i, file) {
        data.append('file', file);
    })
    data.append('action', 'uploadFile');

    var req = {
        url: 'upload.php',
        data: data,
        type: 'POST',
        processData: false,
        contentType: false,
        dataType: 'json'
    };

    $.ajax(req).done(function () {
        //success handler
    });
});