尝试获取输入类型=文件时,jQuery获取“未定义”

时间:2014-09-16 11:45:55

标签: jquery ajax undefined form-data

我目前正在努力为我正在处理的网站制作一个图片上传功能,并且希望使用AJAX来完成,以便不重新加载页面。

但是,我遇到了麻烦。我将自己放在this question's answer之上,在之前的项目中我开始工作。然而,无论我做什么,这次在filedata周围似乎都没有被填入formdata。 AJAX没有通过。等

jQuery看起来像这样:

$("body").on("change","#review_submit #imagefile",function() {
    console.log(this.files[0]);

    var formData = new FormData($("form#imageupload")[0]);
    console.log(formData);

    $.ajax({
        url: "php/submit-imageupload.php",
        type: "post",
        success: completeHandler = function(data) {
            if(data == "success") {
                console.log("Success!");
            }
        },
        error: function() {
            console.log("Oops");
        },
        // Form data
        data: formData,
        //Options to tell JQuery not to process data or worry about content-type
        cache: false,
        contentType: false,
        processData: false
    }, 'json');
});

控制台日志看起来像:

File { size: 1407970, type: "image/png", name: "powerTreads.png", path: "", lastModifiedDate: Date 2014-08-08T21:49:19.477Z, mozFullPath: "E:\Pictures\powerTreads.png" }
FormData {  }

尝试浏览formdata时,根本没有内容可供提及。

HTML如下所示:Image link of HTML

那么谁能看到我出错的地方? :/

1 个答案:

答案 0 :(得分:0)

我的天啊,我现在感到愚蠢。代码首先不是问题,而是我发送给的PHP文件。在它的目的地,我仍然有一些不再适用的上一个项目的功能(并且不存在,因此抛出了我没有看到的错误)。

刚刚将其更改为

success: completeHandler = function(data) {
    if(data == "success") {
        console.log("Success!");
    }
    else {
        console.log(data);
    }
},

它回复了我关于相当描述的问题。 (错误的PDO文件,不再有效的SQL语句,因为它们试图插入不存在的表中等等)。

编辑:请注意,尝试通过console.log()读取其内容时,FormData似乎总是显示为空。所以内容显然一直存在。