2016-06-07 2 views
0

Я просто царапаю голову и не понимаю, что здесь происходит. Этот код работал как в производстве, так и в моей среде разработчиков.FormData не добавляет данные

Here является ссылкой, я делаю то же самое.

var fileToUpload = $('#productsFile').prop('files')[0]; 
var formData = new FormData(); 
formData.append('file', fileToUpload); 
formData.append('action', 'csvUpload'); 
formData.append('siteId', $('#siteId').val()); 
console.log($('#siteId').val()); 
console.log(fileToUpload); 
console.log(formData); 

Выход в консоли:

10 
File { name: "H00447.PriceList.csv", lastModified: 1464960003935, lastModifiedDate: Date 2016-06-03T13:20:03.935Z, size: 14859917, type: "application/vnd.ms-excel" } 
FormData { } 

Объект создал, значения в порядке, так что может быть проблема? Протестировано с помощью Firefox Developer Edition.

EDIT

Вот код для передачи данных в AJAX:

$.ajax({ 
    url: ajaxUrl, // point to server-side PHP script 
    dataType: 'text', // what to expect back from the PHP script, if anything 
    cache: false, 
    contentType: false, 
    processData: false, 
    data: formData, 
    type: 'post' 
}).done(function (msg) { 
    if (parseInt(msg) !== 0) { 
     alert(msg); 
    } else { 
     location.reload(); 
    } 
}).fail(function (msg) { 
    alert('Error: ' + msg.statusText); 
}); 

В ajax.php я просто var_dump($_REQUEST); и показывает мне пустой массив.

EDIT2

Я попробовал его на другой LOCALHOST среде, я добавил несколько случайных ключей и значений, и все было хорошо, даже в FF и Chrome.

Итак, я вернулся к этой проблеме и только что прокомментировал раздел fileToUpload.

Остальные два значения были указаны в $_POST. Если я добавлю файл, $_POST будет пустым.

Что-то не так с файлом.

EDIT3

Нет, я просто проверял с небольшим файлом, что о 3-4Kb, и все в порядке. Мой рабочий файл - 14 Мб, я думаю, что это будет проблемой.

РЕШЕНИЕ

Вся эта вещь из-за размер_файла. Я ввел лимит на пост и максимальный размер файла в php.ini и альта. Вещи - это работы. Спасибо за помощь.

+0

Вы не можете самоанализом 'FormData', попробуйте отправить его на сервер и проверить, были ли отправлены данные. – jcubic

+0

@Rudi 'FormData' - это встроенный объект. – jcubic

+0

@jcubic Я сбросил '$ _REQUEST' в мой' ajax.php' пустой массив. – vaso123

ответ

0

Попробуйте войти ключи и значения:

formData.forEach(function (value, key) { 
    console.log(key, value); 
}); 
0

Данные отправить, но вы должны использовать POST не GET:

var formData = new FormData(); 
formData.append('action', 'csvUpload'); 
var xhr = new XMLHttpRequest(); 
xhr.open("POST", "ajax.php", true); 
xhr.send(formData); 
+0

Ничего в 'var_dump ($ _ REQUEST)' – vaso123

+0

Он работает здесь http://jcubic.pl/ajax.html проверить вкладку в средствах разработчика – jcubic

+0

Внимательный, я проверил его на другом сайте localhost и на этом он работает так, как я ожидал. Мне нужно копать глубже, что может случиться здесь. – vaso123

Смежные вопросы