У меня есть функция отправки в форме
Вот код функции
export function submit(): void {
$("#sequence").val(Number($("#sequence").val()) + 1);
$("#search_results").addClass("overlay");
$("#filter_form").submit();
}
эта функция вызывается в методе onUpdated
Вот код
// This is what triggers when we anything has been changed.
function onUpdated(): void {
if (!skipSubmit) {
submit();
}
}
У меня иногда бывает 500 запросов кода от серверной части, и мне нужно показать, например, предупреждение.
Мне нужно поймать 500 статус из запроса.
Интересно, как я могу это сделать в этом коде, ведь у меня есть только $ ("# filter_form"). Submit () ;?
Спасибо за помощь



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


вы можете сделать что-то вроде этого:
$('#filter_form').submit(function(event) {
//serialize the data in the form in JSON
var formData = $("#filter_form").serializeObject();
$.ajax({
type : 'POST',
url : //your url
data : formData,
dataType : 'json',
encode : true
}).done(function(data) {
//here it comes if there are no error in the server
}).fail(function(data){
//when it fails (so error 500)
//handle your error
)};
event.preventDefault();
}
Вы размещаете свою форму синхронно. Браузер всегда показывает ответ на синхронные запросы. у вас есть 2 варианта отображения удобных сообщений об ошибках:
1- Сервер генерирует удобную html-страницу и возвращает ее клиенту. (вы должны обработать ошибку на сервере и сгенерировать страницу с ошибкой)
2- отправить запрос асинхронно (Ajax) и поймать ошибку на клиенте и показать правильное сообщение пользователю:
$.ajax(“/url-to-post”, {
data: $("#filter_form").serialize(), // serialize form data
success: function(){
//...
},
error: function(jqXHR, textStatus, error){
//...
},
});