Вопрос из любопытства, почему данные в экземпляре FormData
не видны при выводе в консоль, но при этом они видны во вкладке Network
?
Вывод в консоль делал непосредственно перед отправкой, объект один и тот же.
// выдержки из кода компонента Vue
const formData = new FormData();
Object.keys(this.data).forEach(key => {
formData.append(key, this.data[key]);
})
console.log(formData)
//метод отправляющий post-запрос на сервер.
this.$API.post(path, formData, {'Content-Type': 'multipart/form-data'}).then()...
//под капотом используется axios
//.. выдержка из конструктора
post(path, payload, headers = { 'Content-Type': 'application/json' }) {
return this.service.request({
headers,
method: 'POST',
url: path,
responseType: 'json',
data: payload,
});
}
Так как FormData является интерфейсом, предоставляемым браузером, внутренняя организация может зависеть от конкретных браузеров.
В дополнение к этому, вывод console.log
, так же не специфицирован, что еще добавляет возможности различного вывода в различных браузерах.
Что можно увидеть в консоли chrome?
остальной вывод производится на усмотрение конкретного браузера.
Если посмотреть в спецификации, у каждого объекта FormData есть ассоциированный список со значениями.
Так как он ассоциированный, то может не являться частью объекта, следовательно текущий вывод вполне оправдан.
Для вывода содержимого у FormData есть методы
const form = document.forms['example-form'];
const exampleInput = document.querySelector('[name="example"]');
exampleInput.addEventListener('change', changeHandler);
function changeHandler() {
const formData = new FormData(form);
for (key of formData.keys()) {
console.log(`${key}: ${formData.get(key)}`);
}
}
<form id="example-form">
<input name="example">
</form>
Есть массив (точнее объект), как изменить кодировку его элементов из CP1251 в UTF8?
Столкнулся с проблемой повторной загрузки ресурсов в iOS (iPhone 7)Разрабатываю большое SPA приложение, с предзагрузкой ресурсов(изобр
Простите за нубство, не знал, как загуглить, гугл выдаёт только "сокращение до сотых из 12345000123 до 12345
Хочу поинтересоватьсяМожно ли сделать на сайте (средствами js / сss), когда открывается камера, вставить объект и чтоб он завис в пространстве