Korzystając z obiektu FormData, serwer otrzymuje pusty POST
Próbuję wysłać jeden plik i jedną zmienną tekstową na mój serwer za pomocą obiektu FormData. Patrząc na kartę Sieć w narzędziach programistycznych Chrome, widzę, że plik i zmienna są wysyłane. Próbowałem jednak var_dump () w zmiennych $ _POST i $ _FILES, a oba pokazane są jako puste tablice. Oto kod, którego używam dla formularza:
<code>var image_upload = document.getElementById("image_upload"); if(image_upload.value == '') { alert("Please select a file to upload."); } else { alert("in"); var ajaxHandler = new XMLHttpRequest(); var content = image_upload.files[0]; var formData = new FormData(); formData.append("type", "5"); formData.append("content", content) ajaxHandler.onreadystatechange = function() { if(ajaxHandler.readyState == 4) { alert(ajaxHandler.responseText); } }; ajaxHandler.open("POST", "newCard", false); ajaxHandler.setRequestHeader("Content-type","multipart/form-data"); ajaxHandler.send(formData); } </code>
Wypróbowałem ten kod z i bez „charset = utf-8” w typie zawartości i nie wydaje się, aby miało to znaczenie. Co tu się dzieje?