7

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

有任何想法吗?

4

1 回答 1

13

啊,这是因为你在尝试做跨域请求,而跨域请求是依赖动态脚本标签的,它永远不可能同步,必须使用数据类型json和GET方法。

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

于 2009-06-05T11:19:48.457 回答