我有以下要求

// =============================================== start()
//
// clicked_button : the user click the start button.
// app_path       : the app path
//
// return none.
//
var start = function(clicked_button, app_path) {

    $.ajax({
        type: 'POST',
        data: { 'app_path': app_path },
        url: '/app/start',
        context: clicked_button,
    })

    .done(function(data) {
        console.log(data);
        $(this).removeClass('btn-success');
        $(this).addClass('btn-danger');
        $(this).text('stop');
    })

    .fail(function(data) {
        console.log('failed to start the app: ' + data);
    })
};


请求已发送到服务器,并且操作已完全完成,我已经对其进行了测试,浏览器收到200 OK,我已经对其进行了检查,但是以某种方式未执行.done函数中的代码,这就像请求是还没完成。

我如何检查浏览器是否收到200 OK,然后中止ajax调用,然后继续执行jquery代码。

最佳答案

您不需要这样做。

您可以只在ajax中使用成功功能。

  $.ajax({
        type: 'POST',
        data: { 'app_path': app_path },
        url: '/app/start',
        context: clicked_button,
        success: function(data){
           console.log(data);
           $(this).removeClass('btn-success');
           $(this).addClass('btn-danger');
           $(this).text('stop');
        },
        error: function(data){
           console.log('failed to start the app: ' + data);
        }
    })


试试这个代码,看看萤火虫有什么问题!

关于javascript - 浏览器收到200ok时中止或标记ajax请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27637956/

10-12 12:34