我有以下代码
$(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
为什么我的请求被中止?
答案 0 :(得分:1)
正如Reigel所详述,AJAX无法处理文件上传。 (直到几天前我才知道自己。)
然而,有一个Javascript对象能够处理文件上传并使用jQuery进行交互。注意:这不是传统意义上的AJAX,而是弥合了您目前正在处理的差距。