我需要对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.
有任何想法吗?
解决方法
啊,这是因为你正在尝试进行跨域请求,而跨域请求依赖于动态脚本标记,它永远不能同步,必须使用数据类型json和GET方法.
如果执行POST或删除数据类型,则由于same-origin策略,您将收到访问错误.它将立即返回,但作为失败.