我希望这个标题能够解释我正在尝试做什么。我迷失在整个主题上,所以请耐心等待我:)
我正在使用以下内容检索特定类别中所有对象的个人ID
function mba(user, password) {
var tok = user + ':' + password;
var hash = btoa(tok);
console.log(hash);
return 'Basic ' + hash;
}
$.ajax({
url: "https://domain.com/category?strip=true&q=currentCatId='LONG_UNIQUE_ID'&fields=id",
type: "GET",
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", mba("USER", "PASS"));
},
error: function(xhr, status, error){
alert(status + " - " + error);
}
});
这很好用。我需要帮助的是,一旦完成,我需要将检索到的每个ID插入到新的呼叫中。
$.ajax({
url: "https://domain.com/category/"+ INDIVIDUAL_IDS_SHOULD_GO_HERE +"?strip=true&expand=true&collections=something,something2",
type: "GET",
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", mba("USER", "PASS"));
},
success: function(data){
$(".myCont").loadTemplate("#myTemp", data);
},
error: function(xhr, status, error){
alert(status + " - " + error);
}
});
因此第一次调用获取该特定类别中每个对象的所有ID。但后来我需要有关每个对象的扩展信息,只能通过在第二次调用中给出唯一ID来检索(对于第一次调用中检索到的每个ID)。
我知道我在这里提供的代码不正确。我需要理解(并且做对了)应该如何做到这一点。
“$(”。myCont“)。loadTemplate(”#myTemp“,data);”部分是JQueryTemplate。所以这就是我用来表示从列表中的每个对象收集的实际(扩展)数据。
答案 0 :(得分:0)
在第一次调用中,您可以(虽然有更好的方法)只需添加“成功”参数并在其中添加第二个ajax调用
success: function(data){
//pseudo code
for each data
INDIVIDUAL_IDS_SHOULD_GO_HERE = this data
ajax call with that INDIVIDUAL_ID
end for each data
}
很难评论,因为我猜测第一次通话会返回什么,但正如你所说'id s '我猜你可以通过它们进行后续调用。
但是我可能(根据具体情况)编写一个运行php脚本的调用来调用每个URL并返回一个JSON对象,结果作为一个数据集 - 减少客户端的调用=减少流量和整体一个更好的体验(特别是如果他们在移动设备上 - 10个电话可能需要很长时间)。