У меня есть страница, похожая на то, что ниже. Когда пользователь нажимает кнопку отправки для формы, API должен проверяться, и если запрос GET не выполняется, форма не должна отправляться. Тем не менее, я обнаружил, что запрос GET всегда терпит неудачу, и сообщение об ошибке пустое. Я предполагаю, что страница перенаправляется до того, как запрос GET успеет завершиться sh.
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://code.jquery.com/jquery-1.11.2.js" integrity="sha256-WMJwNbei5YnfOX5dfgVCS5C4waqvc+/0fV7W2uy3DyU=" crossorigin="anonymous"></script>
</head>
<body>
<form action="POST_URL" id="primary-form" method="POST">
<input type="submit" id="submit-button"/>
<input type="text" name="text-field" id="text-field">
</form>
<script>
$('#primary-form').submit(function(event) {
$.ajax({
type:"GET",
url: // API_URL //,
success: function(response) {
console.log("success");
console.log(response);
},
error: function(error) {
event.preventDefault();
console.log("error");
console.log(error);
},
});
})
</script>
</body>
</html>
Я могу изменить javascript следующим образом, и в этом случае запрос GET будет успешным. Тем не менее, я не знаю, как обратить вспять event.preventDefault()
<script>
$('#primary-form').submit(function(event) {
event.preventDefault();
$.ajax({
type:"GET",
url: // API_URL //,
success: function(response) {
console.log("success");
console.log(response);
// want to perform default action
},
error: function(error) {
console.log("error");
console.log(error);
},
});
})
</script>