Здравствуйте! Столкнулся с такой интересной проблемой, есть некая веб-форма, данные которой передаются в фоне скрипту на php посредством jQuery (AJAX). А проблема следующая, есть три системы - Ubuntu, Windows 7, Windows XP, на всех стоят одинаковые версии браузеров (Chrome, Firefox). Если в первых двух всё работает без проблем, то в XP не срабатывает скрипт, либо возвращает ошибку Undefined Index для переданных значений. В чём может быть причина? Что необходимо дописать в скрипте, чтобы всё работало одинаково независимо от версии ОС?
Пример скрипта:
var content = $(this).serialize();
var fdata = new FormData();
fdata.append ('userfile', $('#userfile')[0].files[0])
fdata.append ('text', content);
$.ajax({
type: method,
url: action,
processData: false,
contentType: false,
data: fdata,
success: function(result){
}
Ну судя по всему, на сервере вы пытаетесь достать из массива значение по ключу, которого в этом массиве нет. Собственно поэтому вы получаете: Undefined index.
Возможно на первых двух осях этой ошибки нет из за различных настроек PHP error reporting.
Я бы вам посоветовал научиться использовать дебаггер (он очень полезен при разработке).
Ну и еще бы я вам посоветовал более точно и без ошибок описывать ваши вопросы.
А вы уверены, что в других ОС скрипт работает, или так думаете, только потому что там ошибок нет. Проблема скорее всего в скрипте, а не в том, что разные ОС.
Выложите весь код и попробуйте протестировать работу во всех ОС ( именно протестировать: проверить, отправляется ли запрос и приходит ли ответ )
Проблема в некорректно передаваемом скриптом заголовке contentType, дело в том, что в скрипте неправильно расположены строки, получается что contentType передаётся раньше чем данные, соответственно не корректно передаются значения boundary. Корректный скрипт
var content = $(this).serialize();
var fdata = new FormData();
fdata.append('userfile', $('#userfile')[0].files[0])
fdata.append('text', content);
$.ajax({
type: method,
url: action,
data: fdata,
processData: false,
contentType: false,
success: function(result) {}
})
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости