成功处理Ajax响应并且没有失败

时间:2018-02-10 03:22:39

标签: angularjs

以下代码包含成功和失败处理

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;

我们的方法是正确还是错误的方法?

基本上每个响应都会成功,并根据响应类型显示错误消息

请指教。我们需要遵循最佳实践

2 个答案:

答案 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