【发布时间】:2012-07-12 10:18:46
【问题描述】:
我一直在将数据从 HTML 发送到我的 servlet,如下所示:
<form Action="http://caregap2.appspot.com/src.main.java.org.deri.hcls.caregap2.client" Method="GET">
Username: <input type="text" name="username" size="20" value="@gmail">
<BR>
<input type="submit" VALUE="submit">
<input type="reset" value="reset">
</form>
将变量用户名发送到 servlet。但是我不想点击提交来发送数据,我只想发布数据并加载servlet而不点击任何东西。我试过这个:
$(document).ready(function() {
var username = "matthewgortnalon@gmail.com";
$.ajax({
type: "POST",
url: "http://caregap2.appspot.com/src.main.java.org.deri.hcls.caregap2.client",
data: { username: "username" }
}).done(function( msg ) {
// alert( "Data Saved: " + username );
window.location = "http://caregap2.appspot.com/src.main.java.org.deri.hcls.caregap2.client?q=" + username;
});
});
但它不起作用,谁能看到我做错了什么?或者如果我应该使用不同的方法?帮助将不胜感激! :)
这是我的 servlet 方法:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");{
ServletOutputStream out = response.getOutputStream();
try {
out.println("<html><head><title>" + "</title></head>");
out.println("<body><h1>" + "</h1>");
String name = request.getParameter("username" );
//String comment = request.getParameter( "comment" );
out.println("Name:" + name + "<BR>");
//out.println("Comment: " + comment + "<BR>");
}
catch(Throwable t ) {
out.println("<P><pre>");
t.printStackTrace( new PrintStream(out) );
out.println ("</pre><P>");
}
out.println ("</body></html>");
}
【问题讨论】:
-
它有什么作用?您是否尝试过提醒
msg以查看它显示的内容? -
msg 说“数据已保存:
名称:用户名
-
另外,我不会在 Ajax 中使用 done,因为您不知道状态。使用成功/失败回调 - 或者至少自己使用“成功”并吞下失败的 ajax 调用。
-
@MattMcGrath 如果您在返回时不使用 MSG,您也不需要
}).done(function( msg ) {中的“味精”。
标签: javascript jquery html servlets