Я пытаюсь создать данные формы для отправки в почтовом запросе (скрипту PHP) с помощью FormData.Объект FormData всегда пуст
Однако объект FormData всегда пуст:
var oReq = new XMLHttpRequest();
var url = "http://www.test.com/test.php";
oReq.open("POST", url, true);
oReq.setRequestHeader("Content-Type","multipart/form-data");
var myFormData = new FormData();
myFormData.append("formType","PDF");
myFormData.append("pdf", pdf.output(),"thisPDF.pdf");
oReq.send(myFormData);
переменная «PDF» является объектом jsPDF (я проверил, что он является действительным объектом, и я попытался удалить эту линию, и только есть элемент данных «test» формы, но myFormData всегда является пустым объектом. Надеюсь, что я просто пропустил что-то простое.
Кроме того, когда я пытаюсь проверить наличие элементов формы в PHP-скрипт, он вообще не показывает элементов $ _POST и $ _FILE.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Когда я пытаюсь этот код:
var oReq = new XMLHttpRequest();
var url = "http://www.test.com/test.php";
oReq.open("POST", url, true);
oReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var myFormData = new FormData();
myFormData.append("formType","PDF");
alert(JSON.stringify(myFormData));
oReq.send(myFormData);
можно затем получить доступ к переменной "formType" $ _POST в PHP скрипт. Но если я добавлю в оператор File append объект myFormData (и сохраню тот же «Content-Type», ошибки скрипта PHP вернут ошибку «недопустимого доступа».
Однако $ _POST устанавливается в соответствии с isset ($ _ POST) в обоих случаях, и с вставленным файлом переменная $ _FILE устанавливается в соответствии с isset ($ _ FILE).
Вы знаете, что объявления переменных поднимаются вверху любой области блока, поэтому объявление варов после определенных строк может оказаться неопределенным – iamwhitebox
Хотя это правда, это не проблема число рейнольдса Даже если я переместил это объявление в верхнюю часть блока, он все равно будет пустым. И не nil/null, а пустой объект FormData. –