繁体   English   中英

使用jQuery的多个Ajax调用

[英]Multiple Ajax Calls using jQuery

我是jQuery的新手,我需要检索多个ajax调用的状态代码。 对于每个ajax调用,我需要显示两个警报弹出消息之一:1)成功(如果状态代码为200)2)失败(对于200状态代码以外的任何内容)

我能够显示成功警报弹出窗口,但不确定如何/在何处显示失败消息:

$(document).ready(function() {
          $("#btnSubmit").click(function(){
            for (var i = 8078; i < 8085; i++) {
              jQuery.ajax({
                'url': 'http://localhost:' + i + '/test/',
                dataType : 'jsonp',
                crossDomain:true,
                async:false,
                statusCode: {
                  200: function() {
                    alert('Success');
                  }
                }
              });
            };
          });
      });

请让我知道如何处理失败情况。 另外,我不确定是否正确使用了For循环。 请指导。

您在$.ajax具有称为error属性。 您可以尝试如下操作:

$("#btnSubmit").click(function(){
     for (var i = 8078; i < 8085; i++) {
         jQuery.ajax({
             'url': 'http://localhost:' + i + '/test/',
              dataType : 'jsonp',
              crossDomain:true,
              async:false,
              statusCode: {
                  200: function() {
                    alert('Success');
              },
              error:function(data){
                    alert('Failed');
              },
          });
     }
});

同样,您有success检查success响应

更新

您可以尝试另一种方法来完成此操作,如下所示:

for (var i = 8078; i < 8085; i++) {
    jQuery.ajax({
           'url': 'http://localhost:' + i + '/test/',
            dataType : 'jsonp',
            crossDomain:true,
            async:false,
    })
    .done( function( data ) {
           // Handles successful responses only
    })
    .fail( function( reason ) {
           // Handles errors only
           console.debug( reason );
    })
    .always( function( data, textStatus, response ) {
           // If you want to manually separate stuff
           // response becomes errorThrown/reason OR jqXHR in case of success
    })
    .then( function( data, textStatus, response ) {
           // In case your working with a deferred.promise, use this method
           // Again, you'll have to manually separates success/error
    });
}

我发现此链接表明有两个选项可以管理错误和成功。 您可以执行以下操作:

      jQuery.ajax({
        'url': 'http://localhost:' + i + '/test/',
        dataType : 'jsonp',
        crossDomain:true,
        async:false,
        statusCode: {
          200: function() {
            alert('Success');
          }
        },
        error: function(xhr,status,error) {
           alert('error!');
        }
      });
async:false,
success: function(data,textStatus,xhr){
        // handle success
},
error: function(xhr,textStatus,error){
       // handle error
},..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM