我正在尝试评估ajax响应以了解API请求是成功还是失败。如果请求成功,我想删除添加客户链接。
<span id='addCustomer'><a class='actionlink' id='addCustomerLink' href='javascript:addCustomer()'>Add Customer</a></span><span id='addCustomerResults'></span>
以下文字出现在所有失败的请求中“”添加客户请求失败。“”失败“一词不在任何成功的响应中.indexOf应该捕获”失败“一词,但由于某种原因,它不是
$.ajax({
type: 'post',
url: 'include/ajax.php?action=add',
data: $('#lead-form').serialize(),
success: function (response) {
$("#addCustomerResults").html(response);
if (response.indexOf("Failed") != -1) {
$('#addCustomer').html(""); // customer created so remove the add customer link
}
}
});
响应是一个简单的文本字符串。无法确定响应中是否包含“失败”一词时,为什么要删除“添加客户”链接。
答案 0 :(得分:-2)
通常是&#34;响应&#34; &#34;成功&#34;中的参数AJAX函数的回调包含有关响应本身的信息,而不包含文本(或任何其他数据)。如果您想阅读文本或JSON或任何其他返回的对象,则必须致电response.data
。这是一个AJAX函数示例。
//Making an AJAX call
$.ajax({
type: "GET",
url: "host/resource/",
data: { name: "MyName", address: "123 Toronto St." },
dataType: "json",
success: function (response) {
var returnedData = response.data;
console.log(JSON.stringify(returnedData));
//Loop through JSON array
$.each(returnedData, function (indexInArray, valueOfElement) {
console.log(indexInArray, valueOfElement);
});
},
error: function (err) {
console.log(JSON.stringify(err));
}
});
在你的情况下,因为你正在寻找一个特定的字符串,你会做类似的事情。
var blnFound = response.data.trim().toUpperCase().indexOf("VALUE_TO_SEARCH") > -1
更好的解决方案是创建原型Javascript方法并直接调用它们,这样您就不必完成上述所有操作。