Uncaught TypeError: незаконный вызов

0

Я пытаюсь удалить пользователей из моей базы данных с помощью Ajax, Servlet и HTML. когда я отправляю данные "Незаконный вызов". Я думаю, что не будет никаких проблем с соединением или оператором SQL

delete.html

<input type="text" id="delete">
<input type="submit" onclick="deleteUSer()" value="Delete">

delete.js

function deleteUSer(){

        var username = document.getElementById("delete");

        var params = {

            username: username
        }

    $.post("Delete", params, function(data){}
            )

}

Удалить.

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);



        }

DeleteDAO.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();
Теги:
servlets

2 ответа

0

Если вы пытаетесь ввести команду "удалить", которую вы можете использовать с HTTP-запросами, вы захотите использовать $.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 может понять это.

0

вы отправляете html doc elemect не имя пользователя...

попробуй это --

<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){}
                )

    } 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню