未捕获的TypeError:发送数据时非法调用

时间:2014-12-16 02:48:28

标签: javascript jquery

$("#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);
    }); 
});

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

1 个答案:

答案 0 :(得分:2)

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

$("#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
    });
});