我想发送一个ajax请求,但我正在尝试构建的查询字符串为空。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>This is a project to show how to use RESTful</title>
</head>
<body>
<script type="text/javascript">var contexPath = "<%=request.getContextPath()%>";</script>
<script src="<%=request.getContextPath()%>/js/jquery.js"></script>
<script type="text/javascript">
function doAjaxPost() {
var queryString = $('#htmlform') // empty
alert("doAjaxPost Called:" + queryString + ":");
$.ajax({
...
...
});
} </script>
<H1>Add Employee</H1>
<p>
<form name="htmlform">
<table border=1>
<thead><tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr></thead>
<tr>
<td><input type="text" name="ID" maxlength="5" size="3"></td>
<td><input type="text" name="Name" maxlength="10" size="10"></td>
<td><input type="text" name="Email" maxlength="10" size="10"></td>
</tr>
</table>
<input type="button" value="Save Employee" onclick="doAjaxPost();" />
<p>
<p>
</form>
[<a href="http://localhost:8080/RESTful/service/employees">List all Employees</a> | <a href="add.jsp">Employee Form Test</a>]
</body>
</html>
答案 0 :(得分:3)
更改自:
<form name="htmlform">
要:
<form id="htmlform">
和来自:
var queryString = $('#htmlform')
要:
var queryString = $('#htmlform').serialize();
答案 1 :(得分:2)
您正在使用jQuery选择一个HTML对象,但是您没有从中获取任何内容(在您将其附加到url字符串时,queryString仍然是一个jQuery对象。)
尝试以下
var queryString = $('#htmlform').serialize();
这会导致表单被序列化为字符串,此时附加它应该正常工作。
答案 2 :(得分:1)
您需要在表单上说id="htmlform"
$("#htmlform")
才能正常工作。