作为Java EE和RESTful开发的新来者,我今天有一个问题。首先让我开始添加我的代码。
HTML和jQuery部分:
<form id="frmEmail" action="myurl/">
<h2>Main page</h2>
<br>
<output>Email Address:</output>
<input type="email"
id="email"
placeholder="Email Address"
name="emailAddress" required autofocus/>
<br>
<input type="submit"
name="Submit"
id="btnSub"/>
<br>
<br>
<output id="output"></output>
</form>
<script>
$(document).ready(function () {
$("form").submit(function (e) {
e.preventDefault(e);
$("#btnSub").val("Loading...");
$("#btnSub").prop("disabled", true);
var email = $('#email').val();
load(email);
});
});
function load(email) {
$.post("myurl/" + email, function (data) {
document.getElementById("output").innerHTML = data.message;
$("#btnSub").val("Submit");
$("#btnSub").prop("disabled", false);
});
};
</script>
我的Java课程:
@Path("mypath")
public class main {
@POST
@Path("{address}")
@Produces(MediaType.APPLICATION_JSON)
public Response message(@PathParam("address") String address) {
emailVerifier verify = new emailVerifier(); // Class that tests an email address
String status = verify.verifyAddress(address);
outputResponse response = new outputResponse(); // Just a class with a private String and accessor and mutator methods
response.setMessage(status);
if ("Bad Request".equals(status)) {
return Response.status(Response.Status.BAD_REQUEST).entity(response).build();
} else {
return Response.ok().entity(response).build();
}
}
}
话虽如此,我的代码运行良好,只要我的HTML代码不是400或以上我没有问题,但因为我使用e.preventDefault(e)我的代码运行到无限循环,如果我可以描述它就像发送状态BAD_REQUEST一样。
无论如何要解决这个问题还是有解决方法?此外,如果您对我当前的代码有任何其他提示或改进,我将非常感谢作为一种直观的方式让我了解更多。
感谢您的帮助,非常感谢。
编辑:我的表单也有method =“POST”
答案 0 :(得分:1)
如果问题出在e.preventDefault
,您可以尝试通过点击普通按钮而不是输入类型=提交字段来提交帖子。
更改
<input type="submit"
name="Submit"
id="btnSub"/>
要
<input type="button"
value="Submit"
id="btnSub"/>
和
$("form").submit(function (e) {
e.preventDefault(e);
要
$("#btnSub").click(function () {