我无法正常运行ajax POST请求。我正在尝试将数据从表单发送到服务器(在tomcat上运行)并接收答案。根据答复和电话的成功,我会做一些事情。问题是,似乎HTML文档忽略了具有ajax调用的Jquery-script。当我提交表单时,数据将发送到指定的URL,由服务器通过@FormParam获取并返回答案。收到答案后,整个HTML文档将变为来自服务器的答案。我想通过使用.ajax()方法中的成功/错误属性来精确控制答案的发生情况。在下面的示例中,我在成功属性内使用allert()函数,但从未调用过此函数。
这是代码
<script src="https://cdn.jsdelivr.net/npm/moment@2/moment.min.js"></script>
<script src="https://apis.google.com/js/api.js"></script>
来自服务器的代码是:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<script>$("#myForm").submit(function (e) {
e.preventDefault();
var form = $(this);
var method = form.attr("method");
var url = form.attr("action");
$.ajax({
type : method,
url : url,
data : form.serialize(),
success : function (data) {
alert(data);
},
error : function () {
alert("failed to get data")
}
});
});
</script>
</head>
<body>
<form id="myForm" method="post" action="rest/service/form">
<input name="name" type = "text" placeholder="write a name">
<input name="id" type = "text" placeholder="choose an id">
<input name="amount" type = "text" placeholder="choose an amount">
<input name="submit" type = "submit">
</form>
</body>
</html>
我已经在浏览器中检查了错误消息,但没有成功。我还尝试过将脚本放置在窗体内部和上方的正文中。
我已经看过这些帖子,但是答案并不能解决问题: