Czy możesz mi powiedzieć, co jest w tym złego:
var formdata = new FormData();
formdata.append("key", "value");
console.log(formdata);
Mój wynik wygląda tak, nie mogę znaleźć mojej pary „klucz” - „wartość”
FormData
*__proto__: FormData
**append: function append() { [native code] }
***arguments: null
***caller: null
***length: 0
***name: "append"
***prototype: append
***__proto__: function Empty() {}
*constructor: function FormData() { [native code] }
**arguments: null
**caller: null
**length: 0
**name: "FormData"
**prototype: FormData
**toString: function toString() { [native code] }
*__proto__: Object
**__proto__: Object
**__defineGetter__: function __defineGetter__() { [native code] }
**__defineSetter__: function __defineSetter__() { [native code] }
**__lookupGetter__: function __lookupGetter__() { [native code] }
**__lookupSetter__: function __lookupSetter__() { [native code] }
**constructor: function Object() { [native code] }
**hasOwnProperty: function hasOwnProperty() { [native code] }
**isPrototypeOf: function isPrototypeOf() { [native code] }
**propertyIsEnumerable: function propertyIsEnumerable() { [native code] }
**toLocaleString: function toLocaleString() { [native code] }
**toString: function toString() { [native code] }
**valueOf: function valueOf() { [native code] }
Nie rozumiem! Wczoraj działało tak dobrze, a dzisiaj moja głowa tyle razy rozwaliła klawiaturę! Firefox, Chrome, oba takie same: /
javascript
html
form-data
netzaffin
źródło
źródło
Formdata.entries()
+Array.from()
+,alert()
jeśli jest wystarczająco nowoczesny, lub spójrz na debugowanie urządzeń mobilnychMówisz, że to nie działa. Czego się spodziewasz?
Nie ma sposobu na wydobycie danych zFormData
obiektu; jest przeznaczony tylko do wysyłania danych wraz zXMLHttpRequest
obiektem (dlasend
metody).Zaktualizuj prawie pięć lat później: w niektórych nowszych przeglądarkach nie jest to już prawdą i możesz teraz zobaczyć dostarczone dane,
FormData
oprócz tylko upychania danych. Aby uzyskać więcej informacji, zobacz zaakceptowaną odpowiedź .źródło
formdata
obiekt zawiera plik?Mogłeś mieć ten sam problem, co ja na początku. Próbowałem użyć FormData, aby pobrać wszystkie moje pliki wejściowe w celu przesłania obrazu, ale jednocześnie chciałem dołączyć identyfikator sesji do informacji przekazywanych na serwer. Przez cały ten czas myślałem, że dołączając informacje, będzie można je zobaczyć na serwerze, uzyskując dostęp do obiektu. Myliłem się. Po dołączeniu do FormData sposobem sprawdzenia dołączonych informacji na serwerze jest proste
$_POST['*your appended data*']
zapytanie. tak jak:js:
następnie na php:
źródło
Jeśli jesteś w Chrome, możesz sprawdzić dane posta
Oto jak sprawdzić dane posta
źródło
możesz zobaczyć, czego potrzebujesz
console.log(formData.getAll('your key'))
; obejrzyj https://developer.mozilla.org/en-US/docs/Web/API/FormData/getAllźródło
spróbuj w ten sposób to pokaże
źródło
W moim przypadku w przeglądarce Edge:
podaj mi ten sam błąd
Więc nie używam
FormData
i po prostu ręcznie buduję obiektźródło
React Version
Upewnij się, że masz nagłówek z
'content-type': 'multipart/form-data'
Widok
źródło