同步jquery json请求

时间:2009-06-05 10:30:10

标签: jquery ajax json synchronous

我需要对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。

有什么想法吗?

1 个答案:

答案 0 :(得分:13)

啊,这是因为您正在尝试执行跨域请求,而跨域请求依赖于动态脚本标记,该标记永远不能同步,必须使用数据类型json和GET方法。

如果您执行POST或删除数据类型,由于same-origin策略,您将收到访问错误。它将立即返回,但作为失败。