我正在尝试检索一些 JSON 文件。不确定哪个 URL 有效,因此我正在寻找一种方法来尝试所有 URL,如果一个 URL 失败,则尝试另一个 URL。
网址如:
www.domain.com/a.json
www.domain.com/b.json
www.domain.com/c.json
var url = "www.domain.com";
var file1 = "/a.json";
var file2 = "/b.json";
var file3 = "/c.json";
$.getJSON( url + file1, function( json ) {
console.log( "JSON Data: " + json.users[ 3 ].name );
});
此外,每个 json 文件的结构并不相同,因此根据文件的不同,我必须有不同的方式来访问它。假设对于文件 a.json
我将通过 json.users[3].name 访问数据,但在文件 b.json
中,相同的数据将通过 访问json.sources.users[3].name
。
那么我怎样才能创建一个这样的方法,在失败时尝试新的 url 呢? 通过失败,我的意思是它可能不是现有文件(404)或相同的腹股沟策略错误。
提前致谢。
最佳答案
您可以将这些调用链接在一起,因此如果一个调用失败,它将使用 $.getJSON
上的 jquery fail
方法转到下一个调用。像这样的事情:
$.getJSON( url + file1, function( json ) {
//do something with file1
}).fail(function () {
$.getJSON( url + file2, function( json ) {
//do something with file2
}).fail(function () {
$.getJSON( url + file3, function( json ) {
//do something with file3
})
});
});
关于javascript - 如何对多个 URL 使用 getjson(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43770048/