当前位置: 代码迷 >> java >> 如何在Ajax中获得错误响应?
  详细解决方案

如何在Ajax中获得错误响应?

热度:31   发布时间:2023-08-02 10:40:36.0

我正在尝试将数据添加到使用Ajax jQuery的购物车中,现在我已经添加了主键约束,并且想要在jQuery中获取错误消息时违反约束:

 function add()
       {
        $(document).ready(function() 
        {
        $('#addtocart').submit(function() {
           //$('#add-button').prop('disabled',true);
    var user = $('#user').val();
           var pid = $('#pid').val();
        $.ajax({
        type:       "post",
        url:        "/devilmaycry/register?action=addtocart",
        data:       {pid:pid ,user:user},
        success:    
                   function() 
                    {
                          alert("Item has been added to cart");
                },
                  error:
                     function() 
                    {
                          alert("Item already present in the cart");
                } 
              });
     return false;
   });

        });
       }   

错误功能永远不会运行,数据库中的功能运行良好,但是我在Ajax中看不到错误消息。

这是Java代码:

public int addintocart(String user,int pid)
{
 try
  {
   conn = obj.connect();
   String sql="insert into cart(userid,product_id,quantity)  values(?,?,?)"; 
   ps1 = conn.prepareStatement(sql);
        ps1.setString(1,user);
        ps1.setInt(2,pid);
        ps1.setInt(3,1);

         ps1.executeUpdate();

  }
    catch(SQLException e)
    {
        e.printStackTrace();
    }
    catch(Exception k)
    {
        k.printStackTrace();
    }

   return x;
 }

怎么了?

您必须将错误作为Java的Servlet响应发送回去。 这是一个示例:

另外,您在ajax错误函数中缺少一些参数。 这可能是另一个问题。 查看您应该评估该错误并显示相应的消息。

该错误代码将永远无法工作。 仅当无法建立连接或URL不存在时,AJAX的onerror事件才会运行。 您必须从服务器返回一些指示成功或失败的信息。

我会这样做。

PHP(将此代码转换为JAVA):

if(success){
    die(1);
} else {
    if(notyetincart){
       die(0);
    } else {
        die(2);
    }
}

然后,jQuery编码为:

function add()
       {
        $(document).ready(function() 
        {
        $('#addtocart').submit(function() {
           //$('#add-button').prop('disabled',true);
    var user = $('#user').val();
           var pid = $('#pid').val();
        $.ajax({
        type:       "post",
        url:        "/devilmaycry/register?action=addtocart",
        data:       {pid:pid ,user:user},
        success:    
                   function(response) 
                    {
                          if(reponse==="1")
                          alert("Item has been added to cart");
                          else if(reponse==="0")
                          alert("Item could not be added to cart");
                          else alert("Item already present in the cart");

                },
                  error:
                     function() 
                    {
                          alert("Item could not be added to cart due to poor network connection");
                } 
              });
     return false;
   });

        });
       }

希望这可以帮助

  相关解决方案