所以我需要发出一个跨域请求,其中响应不是 JSON 格式的,所以我不能使用 .getJSON。.get 显然不起作用,因为它是一个跨域请求。
我在谷歌搜索时遇到了这个(阅读这个),它似乎应该适用于我想要做的事情(即使用 jquery 插件进行非 json 格式的跨域调用)。我的代码如下所示。我知道 url 工作正常,因为如果我将它粘贴到浏览器中,我可以看到响应,根据 last.fm 文档
服务器响应的正文由一系列 \n (ASCII 10) 终止的行组成。典型的成功服务器响应将是这样的:
OK
17E61E13454CDD8B68E8D7DEEEDF6170
http://post.audioscrobbler.com:80/np_1.2
http://post2.audioscrobbler.com:80/protocol_1.2
所以我知道我的网址很好。现在我想知道我是如何获得这些信息的,以及为什么我的示例版本不起作用。
function performHandshake(sk, token, ts){
var token = md5(apiSecret + ts);
var urlToUse = "http://post.audioscrobbler.com/?hs=true&p=1.2.1&c=tst&v=1.0&u=chamals&t=" + ts + "&a=" + token + "&api_key=" + apiKey + "&sk=" + sk + "&format=xml&callback=cbfunc";
$('#container').load(urlToUse);
$.ajax({
url: urlToUse,
type: 'GET',
success: function(res){
var headline = $(res.responseText).find('a.tst').text();
window.console.log(headline);
}
});
}