jQuery AJAX 'multipart / form-data' не отправляет данные?

Я в недоумении, почему я могуt получить jQuery для передачи загружаемых данных, поскольку объект AJAX настроен правильно и отправляются правильные заголовки Content-Type / MIME-Type. I '

мы пробовали две отдельные формы запроса - одну с объектом FormData, содержащуюся в литерале, а также просто передавая объект FormData напрямую.

К сожалению, так или иначе я могуНе нужно ничего передавать, и $ _FILES и $ _POST являются пустыми массивами.

Идеальный запрос, который я хочу использовать, выглядит следующим образом:

Вместе со следующим кодом:

var files = new FormData();

$.each(context.prototype.fileData, function(i, obj) { files.append(i, obj.value.files[0]); });

var request = { action: 'upload', id: response.obj.id, data: files };

$.ajax({

    type        : 'POST',
    url         : context.controller,
    data        : request,
    processData : false,
    contentType : 'multipart/form-data',
    mimeType    : 'multipart/form-data',

    success     : function(r) {
        console.log(r);
        //if (errors != null) { } else context.close();

    },

    error       : function(r) { alert('jQuery Error'); }

});

Еще раз единственный ответ (глядя на вкладку Сеть и Консоль), когда я пытаюсь экспортировать и $ _FILES, и $ _POST это просто два пустых массива ...

 Musa11 окт. 2012 г., 05:25
Попробуйте изменитьcontentType ложно
 Julian11 окт. 2012 г., 05:30
Неудачно. jQuery просто меняет его на application / xml, но все равно в них нет данных.$_POST или же$_FILES

Ответы на вопрос(1)

Решение Вопроса

Вы должны пройтиFormData объект как параметр данных

var request = new FormData();                   
$.each(context.prototype.fileData, function(i, obj) { request.append(i, obj.value.files[0]); });    
request.append('action', 'upload');
request.append('id', response.obj.id);
$.ajax({

    type        : 'POST',
    url     : context.controller,
    data        : request,
    processData : false,
    contentType : false,                        
    success     : function(r) {
        console.log(r);
        //if (errors != null) { } else context.close();

    },

    error       : function(r) { alert('jQuery Error'); }

});
 Ketu29 янв. 2016 г., 12:29
@Musa @julian как получить контекст? ?context.prototype.fileData
 Julian11 окт. 2012 г., 05:36
Интересно это скотчпоначалу это не сработало, но сработало, как только я изменил Content-Type на false ...

Ваш ответ на вопрос