我已经建立了一个调用flickr API 1st的天气网站,然后根据天气调用yahoo API。问题是来自ajax调用的数据 - 来自yahoo API的数据并不及时加载页面。
我曾经尝试过减慢ajax调用的一些事情:
setTimeout
$.ajax(success: )
调用的整个函数包装到另一个函数中,并将其包装在setTimeout
$.ajax(success: )
中取出回调函数,然后输入$.ajax(complete: )
param data
传递的$.ajax(success: )
对象,并将其复制到另一个var,然后转到ajax调用之外,并将处理数据的函数放在$.ajaxComplete()
内,传递新对象var
我尝试过多种方法可以解决这个问题,但我已经使用了3天但无法找到解决方案。有人可以帮助我吗
这是项目的链接
function RunCALL(url)
{
var comeBack = $.ajax({
url: url,
async: false,
dataType:"jsonp",
crossDomain: true,
method: 'POST',
statusCode: {
404: function() {console.log("-4-4-4-4 WE GOT 404!");},
200: function() {console.log("-2-2-2-2 WE GOT 200!");}},
success: function(data){
weatherAndFlickrReport(data);},
error: function(e) {console.log(e);}
});
}
答案 0 :(得分:1)
您使用的是jQuery吗?如果是这样,你必须链接你的回调。在较高的层面上,它看起来像是:
//You might want to use .get or .getJSON, it's up to what response you're expecting...
$.getJSON('https://example.com/api/flickr', function(response) {
//This your callback. The URL would end up being https://example.com/api/yahoo/?criteria=lalalalala
$.getJSON('https://example.com/api/yahoo/', { criteria: response.propertyYouWant}, function(yahooResponse) {
//Do something with your response here.
});
});
编辑:我已使用工作解决方案(基于上述AJAX请求)更新了您的代码段,现在可以显示您的JSON对象已准备就绪。 Looky here.