【发布时间】:2011-08-23 17:06:00
【问题描述】:
我有以下带有 JQuery 的 AJAX 函数:
var formData = $('#FonykerEditForm').serialize();
$.ajax ({
type: 'POST',
url: '<?php echo $html->url('/fonykers/edit',true); ?>',
data: formData,
dataType: 'json',
success: function(response) {
message.html(response.msg);
message.fadeIn();
if(!response.ok) {
message.removeClass('success');
message.addClass('error');
} else {
message.removeClass('error');
message.addClass('success');
username = $('#FonykerUsername').val();
email = $('#FonykerEmail').val();
}
$('#save-account-button').removeAttr('disabled');
$('.input-text').removeClass('ok');
$('.input-combo').removeClass('ok');
},
error: function (xhr, ajaxOptions, thrownError){
alert(xhr.statusText);
alert(thrownError);
$('#save-account-button').removeAttr('disabled');
}
});
我遇到的问题是我的表单中的类型文件字段没有与表单的其余数据一起提交,如何将文件包含在 ajax 请求的数据中?
【问题讨论】:
-
无法使用 ajax 以这种方式发送文件。使用众多 jquery 插件之一进行上传。
-
如果你真的想通过 ajax 发送文件,请使用 HTML5
-
您可以将表单的目标设置为隐藏的 iframe,然后监听隐藏 iframe 的加载事件以查看它何时返回。然后,您可以从 iframe 的正文中获取内容作为响应。
标签: javascript jquery ajax forms file