为什么我的.ajax请求报告在Firebug中被中止?

时间:2010-07-04 01:57:02

标签: jquery firebug

我有以下代码

    $(function(){
    $("#AddMaps").submit(function(){

        var $form = $('#AddMaps');

        $.ajax({
            type: 'POST',
            url: 'test_multiple.php',
            data: $form.serialize(),
            dataType: "json",
            beforeSend:function(){
                $('#ajax-panel').html('<div class="loading"><img src="loader.gif" alt="Loading..." /></div>');
                //alert(data);
            },
            success:function(data){
                $('#ajax-panel').empty();
                if (data.response != "Success"){
                    $('#ajax-panel').append('Error Occurred');
                }
                else {
                    $('#ajax-panel').append('File(s) Uploaded');
                }
            },
            error:function(){
                // Failed Request; Freak out
                $('#ajax-panel').html('<p class="error"><strong>Oops!</strong> Try that again in a few moments.</p>');
            }
        });
        return false;
    });
    });

当此事件触发时,Firebug会报告此事件已中止。此外,在beforeSend中,警报不会显示任何数据(显然在取消注释时)。此时,我怀疑data未正确填充,但Firebug在请求中显示正确的数据: server=1&maps%5B%5D=europe.tar.bz2

为什么我的请求被中止?

1 个答案:

答案 0 :(得分:1)

正如Reigel所详述,AJAX无法处理文件上传。 (直到几天前我才知道自己。)

然而,有一个Javascript对象能够处理文件上传并使用jQuery进行交互。注意:这不是传统意义上的AJAX,而是弥合了您目前正在处理的差距。

AJAX Upload