Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 ajax获取,如果未找到原始url,则替换url_Javascript_Ajax_Jquery_Get - Fatal编程技术网

Javascript ajax获取,如果未找到原始url,则替换url

Javascript ajax获取,如果未找到原始url,则替换url,javascript,ajax,jquery,get,Javascript,Ajax,Jquery,Get,我想知道,如果找不到原始文件,是否可以提供另一个url。 具体而言: 文件的链接是动态生成的,最后四个字符是当前年份。今年并不总是有一个文件,所以我的目标是提供一个上一年的备份url 下面是我正在使用的当前代码的一个示例: var newXML = function(url) { var newDoc = null; $.ajax({ type: "GET", url: url, dataType: "xml",

我想知道,如果找不到原始文件,是否可以提供另一个url。 具体而言:

文件的链接是动态生成的,最后四个字符是当前年份。今年并不总是有一个文件,所以我的目标是提供一个上一年的备份url

下面是我正在使用的当前代码的一个示例:

var newXML = function(url) { 
    var newDoc = null; 
    $.ajax({ 
        type: "GET", 
        url: url, 
        dataType: "xml",
        async: false, 
        success: function(xml) { 
            newDoc = $(xml); 
        }, 
        error: function(jqXHR, text, errorMsg) { 
            alert("The following error occurred: "+ errorMsg);  
        } 
    }); 
    return newDoc; 
}

每当我需要检索一个文档时,我都会调用newXML,并向它传递一个以当年结尾的url。如果文件不存在,如何提供备份?

这是一个快速而肮脏的修复方法。我在第一次尝试定位主文件后添加了此代码

setTimeout(function(){
 if($('#latest').is(':empty')){ "Added code here requesting an alternate file if div is empty" }}, 1000);
我只会使用这个,直到我掌握了上面评论中概述的正确方法。具体地说


我不主张使用这种方法,除非你们在最后期限内,并正在扑灭其他火灾。一旦这些火被扑灭,我将花几个小时来理解如何正确地解决这个问题。也就是说,它工作正常。

如果ajax调用失败,请使用另一个URL再次调用该函数,您应该为此使用
done()
fail()
,并且您应该创建您的逻辑,使其能够与异步调用一起工作。@adeneo我同意,甚至可以将一个变量设置为URL,如果出现错误,如果需要,可以使用setTimeout将变量设置为新URL,以重试旧URL。有趣的问题。我认为您应该使用
fail()
@adeneo、@Zach、@Phong将函数更改为递归函数,谢谢您的输入。我已经开始研究你提到的方法,在这样做的过程中,我似乎使用了一种过时的方法。