我有一個函數,當點擊一個按鈕時被調用,這個函數使用jQuery發送一個ajax請求。在成功時,我有一些合乎邏輯的if和else if語句。 Web服務器只能發送2種類型的文本響應。它可以是「成功」或「錯誤」。但是當測試這兩種情況時,他們似乎失敗了。我已經添加了一個else語句和一個警告,告訴我服務器發送的是什麼,但正如我所料,它是「成功」或「錯誤」,這是我在服務器中編寫servlet的方式,它只能發送「成功「或」錯誤「作爲迴應。此外,我的警報吐出「成功」或「錯誤」,我不明白這裏有什麼問題。請幫忙。if和else-if語句拒絕在jQuery的ajax函數中工作
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");
}
}
'deleteInventoryRecord.mpcs'是怎麼樣的? – Sergio
你確定響應中沒有空格或隱藏字符?您是否嘗試過使用$ .trim(info) –
您是否有可能使用前導或尾隨空格,非打印字符以及不同的文本大小來返回值? –