gpt4 book ai didi

java - if 和 else-if 语句拒绝在 jquery 的 ajax 函数中工作

转载 作者:行者123 更新时间:2023-11-28 20:14:38 25 4
gpt4 key购买 nike

我有一个在单击按钮时调用的函数,该函数使用 jquery 发送 ajax 请求。关于成功,我有一些逻辑 if 和 else if 语句。 Web 服务器只能发送 2 种类型的文本响应。它可以是“成功”或“错误”。但当测试这两个条件时,它们似乎失败了。我添加了一个 else 语句和一个警报来告诉我服务器正在发送什么,但正如我预期的那样,它要么是“成功”,要么是“错误”,我在服务器中编写 servlet 的方式,它只能发送“成功” ”或“错误”作为响应。此外,我的警报正在吐出“成功”或“错误”,我不明白这里出了什么问题。请帮忙。

 function deleteRecord(productID, description)
{
var errorMessage = '<td class="red-left">There was an error. <a href="">Please try again.</a></td>';
var successMessage = '<td class="green-left">Product '+productID+' ('+description+') has been deleted sucessfully.</td>';
var data = "productID="+productID+"&description="+description+"&deleteProduct=true";
$.ajax({
type: "GET",
url: "deleteInventoryRecord.mpcs",
data: data,
cache: false,
success: function(info)
{
if(info == 'Success')//This does not work
{
$(".green-left").replaceWith(successMessage);
$("#message-green").fadeIn("slow");
$("#product-"+productID).remove();
}
else if(info == 'Error')//This does not work
{
$(".red-left").replaceWith(errorMessage);
$("#message-red").fadeIn("slow");
}
else//This works always but I dont need it
{
alert(info); //It always says "Success" or "Error"
}
},
dataType: 'text'
});
}

下面是发送响应的 servlet 代码:

private void deleteProduct(HttpServletResponse response, String productID) throws IOException
{
try
{
response.setContentType("text/html");
InventoryDAO iDao = new InventoryDAO();
if(iDao.deleteProduct(productID) == true)
response.getWriter().println("Success");
else
throw new RuntimeException("Error");
}
catch(ClassNotFoundException | IOException | SQLException | RuntimeException xcp)
{
response.getWriter().println("Error");
}
}

最佳答案

在这里尝试一下,假设服务器正在以 UTF8 格式发送带有 BOM 的响应。 ,这会导致您的比较失败。

要确认,请尝试 alert(info.length)。 “成功”应为 7,“错误”应为 5。如果不是,那么您可能有 BOM。

当然,要检查的另一件事是响应中没有空格 - 同样,length 检查将有助于验证这一点。

您可以通过将服务器端脚本编码为“UTF8 without BOM”(有时称为“ANSI as UTF8”)来解决此问题,具体取决于您的编辑器。或者,将 if block 更改为:

if( info.match(/Success$/)) ...
else if( info.match(/Error$/)) ...

关于java - if 和 else-if 语句拒绝在 jquery 的 ajax 函数中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19390446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com