Нужно было реализовать сабж. Затык в том, что $.ajax не поддерживает отправку данных, которые генерирует FormData, и соотв. код
options.data = new FormData($('#formId').get(0));
$.ajax(options);
возвращает ошибку.
Время поджимало, и я написал костыль:
$.aajax = function(options){
var status;
var xhr = $.ajaxSettings.xhr();
xhr.timeout = cfg.timeout;
(options.beforeSend) ? options.beforeSend() : $.ajaxSettings.beforeSend();
xhr.open('POST',options.url);
xhr.setRequestHeader('X-Requested-With','XMLHttpRequest');
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
(options.success) ? options.success(xhr.responseText) : $.ajaxSettings.success(xhr,xhr.responseText);
status = 'success';
}else{
status = 'error';
}
clearTimeout(timeout);
(options.complete) ? options.complete(xhr,status) : $.ajaxSettings.complete(xhr,status);
}
};
xhr.send(options.data);
var timeout = setTimeout(function(){xhr.abort(); status='timeout'; $.ajaxSettings.complete(xhr,status)},cfg.timeout);
};
В событии отправки формы проверяется проверка наличия у юзера FormData и, если есть, отправка идет с помощью представленной выше функции. Собственно, вопрос: есть ли готовый плагин для поддержки отправки таких данных с помощью стандартного $.ajax? Не загрузку файлов по отдельности, а именно отправки всей формы. jquery.form делает это костылем со скрытым iframe, который по ряду причин нежелателен. Мой плагин, написанный на скорую руку, многих плюшек jquery не поддерживает, а дописывать их поддержку лень. Гугл обиделся и ничего подходящего не выдал. Помогите советом, братья-кодеры