【发布时间】:2015-01-02 10:52:11
【问题描述】:
我的 ajax 代码有问题。
$(document).ready(function() {
var activeTD;
$(".td_test").click(function() {
$("#bModal").modal('show');
activeTD = this;
return false;
});
$("#ajaxtest").submit(function(ev) {
ev.preventDefault();
$.ajax({
type:"POST",
url:"InsertServlet",
dataType: "text",
})
.done(function(data){
alert(data);
$(activeTD).text(data);
});
});
});
alert(data) 打开一个对话框但它是空的,这意味着data 是一个空字符串或不可用。你能帮我解决这个问题吗?
如果有帮助,这是我的 Servlet 代码:
public class InsertServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
processRequest(request,response);
}
protected void doGeT(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
processRequest(request,response);
}
protected void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
response.setContentType("text/plain");
String name="";
if(request.getParameter("submitdata") != null) {
if(request.getParameter("getdata") != null) {
name += request.getParameter("getdata");
}
}
PrintWriter out = response.getWriter();
out.println(name);
out.close();
String URL ="jdbc:mysql://localhost:3306/test";
String username = "root";
String pw= "root";
Connection con = null;
PreparedStatement stmt = null;
ResultSet rs =null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(URL,username,pw);
stmt = con.prepareStatement(
"INSERT INTO ver(TName) VALUES(?);");
stmt.setString(1,name);
stmt.executeUpdate();
stmt.clearParameters();
stmt.close();
}catch(Exception e) {
}finally {
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
【问题讨论】:
-
你检查你的servlet中
name变量的值吗? -
您的
data:调用中没有data:参数。所以request.getParameter("getdata")什么也找不到。 -
getData 是我的 的名称我如何在数据中引用它:?也许数据:{“名称”:“getdata”}?
标签: javascript jquery ajax servlets