fetch() Отправляет запрос много раз
Здраствуйте делаю админ панел на Vue. Использую fetch() в Vuex - actions. Делаю запрос с локалхоста на другой сервер. Первый запрос отправляеться 2 раза. Второй запрос отправляеться 4 раза. Третий - 8 раз. И так продолжаеться. 2 дня испробовал много чего. Никак не могу решить. Спасибо.

Ответы (1 шт):
@vp_arth: Очевидно, что проблема не с самим fetch, а с каким-то обработчиком события, который сам себя повторно навешивает)
onSubmitLogin - обработчик события.
В нём при каждом срабатывании на this.fv навешиваются дополнительные обработчики событий core.form.valid и core.form.invalid..
После срабатывания они никуда не деваются, а при следующем клике на submit к ним добавляется пара новых обработчиков. При этом в каждом обработчике valid выполняется http запрос.
Эти обработчики нужно навешивать вне обработчика submit, либо реализовывать паттерн .once(), который отписывается при первом же срабатывании.
FormValidation.validate возвращает Promise, поэтому можно вообще не пользоваться его событийной системой:
this.fv.validate()
.then(status => {
// status can be one of the following value
// 'NotValidated': The form is not yet validated
// 'Valid': The form is valid
// 'Invalid': The form is invalid
if (status === 'Valid') {
return fetch('...');
}
});

