AJAX文件上载返回值


AJAX File Upload return value

我正在使用这个AJAX文件上传程序

http://www.phpletter.com/Our-Projects/AjaxFileUpload/

我使用这个代码:

function ajaxFileUpload() {
    $('input[type=file]').each(function () {
        if ($(this).val() == "") {
            return true;
        } else {
            $.ajaxFileUpload({
                url: 'upload.php',
                secureuri: false,
                fileElementId: this.id,
                success: function (data, status) {
                    $('body').html(data);
                },
            })
        }
    });
    return false;
}

我想把body的html变成我从upload.php中回显的内容,就像我们通常使用$.ajax一样。不幸的是,当我从upload.php中回显某个内容时,即使它只是一个简单的字符串,$('body')的html也会变为空。没有返回任何内容。有人能帮忙吗?

使用$('body').html(data.msg);

从您链接到的网站来看,它返回的是一个对象,而不是您试图插入到body中的字符串。

success期望data是一个对象,如果您正在回显upload.php中的字符串,那么它就不是一个对象。尝试构建一个JSON对象并回显:

$out = new stdClass;
$out->error = '';
$out->msg = 'this is the message returned';
echo json_encode($out);
exit();

请尝试success javascript部分中的data.msg

我遇到了同样的问题,遇到了这个线程。这个问题仍然没有答案。我找到了解决方案——在ajax调用中,我们还需要传递响应的dataType。它可以是"html"、"JSON"等。因此,如果您面临类似的问题,请尝试传递dataType。在我的情况下,我得到了文件类型错误,所以这提供了一个线索。