以下代码包含成功和失败处理
jQuery.ajax({
type:"post",
dataType:"json",
url: myAjax.ajaxurl,
data: {action: 'submit_data', info: info},
success: function(data) {
successmessage = 'Data was succesfully captured';
$("label#successmessage").text(successmessage);
},
error: function(data) {
successmessage = 'Error';
$("label#successmessage").text(successmessage);
},
});
$(":input").val('');
return false;
但是我们没有遵循以上内容......我们按照以下方式进行操作
jQuery.ajax({
type:"post",
dataType:"json",
url: myAjax.ajaxurl,
data: {action: 'submit_data', info: info},
success: function(data) {
if(data.responseType == 'success') {
// success
}
if(data.responseType == 'failure') {
// failure
}
}
});
$(":input").val('');
return false;
我们的方法是正确还是错误的方法?
基本上每个响应都会成功,并根据响应类型显示错误消息
请指教。我们需要遵循最佳实践
答案 0 :(得分:0)
数据。 responseType没有返回成功'或者'失败'它包含一个枚举值,表示回复给你的响应类型,如text,json,arrayBuffer等。
因此,在第二个代码块中,if语句将被假定为false,并且不会对收到的响应进行任何操作。
答案 1 :(得分:0)
我认为你应该采用第一种方法,因为 无论您是使用原始JS还是库来实现此功能,您都可以访问请求的状态,即请求是否成功;遇到错误,最后是否已经完成。
正确使用这些事件及其各自的回调来操纵UI以获得更好的用户体验。例如,如果请求不成功,您需要更新用户界面以反映他们的更改未成功,而如果成功,则您想要告诉他们。不要让用户等待!
使用jQuery,您可以使用成功和错误回调。您还可以调用其他回调函数,例如complete和beforeSend,以便进行apporopriate使用。
$.ajax({
//Other code
success: function(msg)
{
// Update the UI here to reflect that the request was successful.
doSomethingClever();
},
error: function(msg)
{
// Update the UI here to reflect that the request was unsuccessful
doSomethingMoreClever();
},
complete: function(msg)
{
// Update the UI here to reflect completion
doSomethingEvenMoreClever();
}
});
看看this