Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery的多个Ajax调用_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 使用jQuery的多个Ajax调用

Javascript 使用jQuery的多个Ajax调用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我是jQuery新手,需要检索多个ajax调用的状态代码。对于每个ajax调用,我需要显示两条警报弹出消息中的任意一条:1)成功(如果状态代码为200)2)失败(对于除200状态代码以外的任何情况) 我能够显示成功警报弹出窗口,但不确定如何/在何处显示失败消息: $(document).ready(function() { $("#btnSubmit").click(function(){ for (var i = 8078; i < 8085;

我是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');
                  }
                }
              });
            };
          });
      });
$(文档).ready(函数(){
$(“#btnsupmit”)。单击(函数(){
对于(变量i=8078;i<8085;i++){
jQuery.ajax({
“url”:”http://localhost:“+i+”/test/”,
数据类型:“jsonp”,
跨域:是的,
async:false,
状态代码:{
200:函数(){
警惕(“成功”);
}
}
});
};
});
});

请让我知道如何处理故障场景。而且,我不确定我是否正确地使用了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');
              },
          });
     }
});
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!');
        }
      });

我尝试过,但没有按预期工作…对于错误,警报只显示一次而不是多次显示…有帮助吗?我尝试过,但没有按预期工作…对于错误,警报只显示一次而不是多次显示…有帮助吗?我尝试过,但没有按预期工作…对于错误,警报只显示一次而不是多次显示…有帮助吗?每个ajax请求只显示一次,因此,您一次只会收到一个错误是否有某种方法可以获得状态文本,例如状态代码:200,我需要状态文本为
OK
等等?是的。。。在成功函数xhr.status中。在错误函数xhr.status中
async:false,
success: function(data,textStatus,xhr){
        // handle success
},
error: function(xhr,textStatus,error){
       // handle error
},..