未捕获的类型错误:非法调用
Uncaught TypeError: Illegal invocation
我正试图使用Ajax、Servlet和HTML从数据库中删除用户。当我提交数据时,会发生非法调用。我认为连接或SQL语句不会有任何问题
删除.html
<input type="text" id="delete">
<input type="submit" onclick="deleteUSer()" value="Delete">
删除.js
function deleteUSer(){
var username = document.getElementById("delete");
var params = {
username: username
}
$.post("Delete", params, function(data){}
)
}
Delete.java servlet
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = null;
DBUtils dbutils = null;
Connection conn = null;
try{
String username = request.getParameter("username");
dbutils = new DerbyUtils();
conn = dbutils.getConnection();
DeleteDAO dao = new DeleteDAO(conn);
dao.deleteUser(username);
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/index.html");
dispatcher.forward(request, response);
}
删除DAO.java
public void deleteUser(String username) throws SQLException{
try{
String sql = "delete from users where username='"+username+"'";
PreparedStatement ps = this.conn.prepareStatement(sql);
ps.executeQuery();
您发送的是html文档elemec而不是用户名。。。
试试这个——
<input type="text" id="delete" value="vivek">
<input type="submit" onclick="deleteUSer()" value="Delete">
function deleteUSer(){
var username = document.getElementById("delete");
var params = {
username: username.value
}
$.post("Delete", params, function(data){}
)
}
如果您试图制定可用于HTTP请求的"delete"命令,您将希望使用$.ajax
,而不是$.post
。
引用文档(https://api.jquery.com/jQuery.post/):
这是一个简写的Ajax函数,相当于:
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
如果你想实施"删除",你会想做一些类似的事情:
var dataObj = {
'username': document.getElementById("delete").value;
}
$.ajax({
type:"DELETE",
data: dataObj,
url: 'url/to/your/servlet'
});
您可能还想在其中包含一个数据类型,但对于本例,jquery可以找到它。
相关文章:
- AJAX调用中的非法调用
- 如何解决这种情况下的非法调用类型错误
- 为什么从数组调用时收到非法调用
- 使用ajax和bootbox进行非法调用
- 未捕获的类型错误:非法调用:模态形式的错误
- 对间谍对象的非法调用
- 非法调用错误 jquery
- $.post投掷”;非法调用”;
- 调用module.exports上的函数时发生CommonJS非法调用错误
- 使用 Web 音频 API 使用 start/noteOn 进行非法调用
- 为什么这会引发未捕获的类型错误:非法调用
- jQuery ajax Uncatch TypeError: 非法调用
- 什么是非法调用类型JavaScript中的错误
- 在 jquery 中将错误作为非法调用
- 为什么某些函数调用在 JavaScript 中被称为“非法调用”
- JavaScript 中的 getUserMedia() 跨浏览器规范化.非法调用
- Array.prototype.forEach.call 给出 TypeError: 非法调用
- 未捕获的类型错误:发送数据时非法调用
- 未捕获的类型错误:从 ajax 发送数据时出现非法调用错误
- 尝试将javascript转换为jquery时出现错误“非法调用”