我需要对last.fm API发出同步请求,但是当我一起使用GET和json时,请求变为异步。
我的代码:
$.ajax({
async: false,
dataType: "json",
url: "http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist="+artist+"&api_key="+apiKey+"&format=json&callback=?",
success: function(html){
imgURL = html.images.image[1].sizes.size[0]["#text"];
}
});
如果我删除dataType:“json”或使用POST,它会再次同步,但我依赖于同时使用json和GET。
有什么想法吗?
答案 0 :(得分:13)
啊,这是因为您正在尝试执行跨域请求,而跨域请求依赖于动态脚本标记,该标记永远不能同步,必须使用数据类型json和GET方法。
如果您执行POST或删除数据类型,由于same-origin策略,您将收到访问错误。它将立即返回,但作为失败。