【发布时间】:2020-01-25 17:51:21
【问题描述】:
我有一个类似于下面的页面。当用户按下表单的提交按钮时,应 ping API,如果 GET 请求不成功,则不应提交表单。但是,我发现 GET 请求总是失败,并且错误消息是空白的。我的猜测是页面在 GET 请求有时间完成之前被重定向。
<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>
【问题讨论】:
标签: javascript forms post