如何在Ajax中获得错误响应

How to get error response in Ajax?

本文关键字:错误 响应 Ajax      更新时间:2023-09-26

我试图将数据添加到购物车(使用)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;
 }

怎么了?

必须将错误作为servlet响应从Java发回。这里是一个例子:如何返回Java异常信息到jQuery。ajax REST调用?

另外,ajax错误函数中缺少一些参数。这可能是另一个问题。查看http://api.jquery.com/jquery.ajax/您应该评估错误并呈现适当的消息。

这个错误代码永远不会工作。AJAX的onerror事件仅在无法建立连接或URL不存在时运行。您必须从服务器返回一些东西,表明成功或失败。

我会这样做。

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

希望能有所帮助