Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.07.2020, 15:22
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

Не срабатывает error при отправке через ajax
Не срабатывает error при отправке через ajax, срабатывает только success
jQuery(document).ready(function () {
							jQuery(".blockcentr").hide();
							jQuery(".blockcentr2").hide();

							jQuery('#forms').submit(function(e){
								var popup = jQuery('.blockcentr');
								e.preventDefault();
								$.ajax({
									url: "/mail.php",
									type: "POST",
									data: jQuery('#forms').serialize(),
									success: function(response) {
	//обработка успешной отправки
	jQuery(".blockcentr").show().delay(2000).fadeOut(1000);
},
error: function(response) {
	jQuery(".blockcentr2").show().delay(2000).fadeOut(1000);
}
});
								  return false;
							});
						});
Ответить с цитированием
  #2 (permalink)  
Старый 01.08.2020, 11:00
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,767

А какие ошибки вы вызыаете?
Ответить с цитированием
  #3 (permalink)  
Старый 03.08.2020, 11:23
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

При не правильном заполнении поля капчи, все равно срабатывает условие успешной отправки в js, но php функция не срабатывает (как и должно быть). В js вместо error срабатывает только success
Ответить с цитированием
  #4 (permalink)  
Старый 03.08.2020, 12:37
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 641

надо чтобы пэхапэ "выбрасывал" ошибку, а не отвечал 200 на неправильный инпут
Ответить с цитированием
  #5 (permalink)  
Старый 03.08.2020, 12:57
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

PHP правильно работает и в случае ошибки не отправляет данные формы на сервер
Ответить с цитированием
  #6 (permalink)  
Старый 03.08.2020, 13:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Julia1991, это событие возникает, если произошла ошибка на клиенте, например истекло время отведенное на запрос, или произошла ошибка на сервере. В противном случае вы ничего и не получите.
Ответить с цитированием
  #7 (permalink)  
Старый 03.08.2020, 14:33
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 641

Сообщение от Julia1991 Посмотреть сообщение
PHP правильно работает и в случае ошибки не отправляет данные формы на сервер
https://developer.mozilla.org/en-US/...eb/HTTP/Status

надо чтобы пых присылал статус, 4xx на невалидный инпут

https://stackoverflow.com/questions/...0process%20the
Ответить с цитированием
  #8 (permalink)  
Старый 03.08.2020, 14:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от SuperZen
надо чтобы пых присылал статус
На мой взгляд, странно смешивать ошибки системы с ошибками логики, то есть проверки формы.
Ответить с цитированием
  #9 (permalink)  
Старый 03.08.2020, 14:53
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 641

как я понимаю, отправляется запрос, сервер ответил, если это что-то самописное, да же если нет, это по дефолту будет отсылать статус 200, что соответственно воспринимается, как все ОК. Надо посмотреть в консоль разработчика, и проверить какой там там status в Response Header )

например, fetch почти на все будет вызывать then, там нужно проверить явно, и сделать throw new Error(...), чтобы попасть в .catch...

Сообщение от laimas Посмотреть сообщение
На мой взгляд, странно смешивать ошибки системы с ошибками логики, то есть проверки формы.
что должен ответить сервер на форму, в случае ok/!ok?
Ответить с цитированием
  #10 (permalink)  
Старый 03.08.2020, 15:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от SuperZen
что должен ответить сервер на форму, в случае ok/!ok?
Ошибка каптчи должна анализироваться в success, ибо это диалог сервер-клиент по приему формы, а никак не в error, так как это не является ошибкой сервера. Конечно, можно выплюнуть клиенту статус отличный от 200, но это уже подмена одного другим. Я так думаю.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получаю через AJAX php скрипт jay-S Общие вопросы Javascript 9 26.11.2017 11:56
Пройтись по списку и получить данные через ajax zerg jQuery 14 09.06.2017 11:49
Ajax запрос через метод submit() n0kkw1n AJAX и COMET 7 16.12.2016 22:47
Jquery Ajax не работает через определенных провайдеров Fairy-Wilbury AJAX и COMET 0 10.07.2014 16:33
При отправке через ajax не открывается файл-адресат temuch-13 AJAX и COMET 6 09.07.2014 17:03