我正在尝试将数据添加到购物车(使用)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;
}
出了什么问题?
答案 0 :(得分:0)
您必须将错误作为来自Java的servlet响应发送回来。以下是一个示例:How to return Java Exception info to jQuery.ajax REST call?
此外,您缺少ajax错误函数中的一些参数。这可能是另一个问题。查看http://api.jquery.com/jquery.ajax/您应该评估错误并提供相应的消息。
答案 1 :(得分:0)
那个错误代码永远不会起作用。只有在无法建立连接或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;
});
});
}
希望这有帮助