JQuery中的HTTP Get请求到Last.fm

7
我正在尝试使用JQuery进行HTTP Get请求,但是我得到了一个空字符串作为响应,所以我想我做错了什么。我使用http://api.jquery.com/jQuery.get/的文档作为指南。
我的代码如下:
$.get("http://www.last.fm/api/auth/?api_key=xxxkeyxxx", function(data){
     window.console.log(data);
  });

编辑:我的代码现在看起来像这样

$.getJSON("http://www.last.fm/api/auth/?api_key=c99ddddddd69ace&format=json&callback=?", 
    function(data){
        window.console.log(data);
    });

但我遇到了语法错误

错误出现在http://www.last.fm/api/auth/?api_key=c99ddddddd69ace&format=json&callback=

最新编辑:看起来是因为last.fm返回的是HTML而不是JSON,有什么想法可以分享。

4个回答

3
除非您的脚本是从 www.last.fm 服务,否则由于浏览器所施加的 同源政策 限制,您将无法做到这一点。
您应该通过您的服务器进行 代理请求 的调查。

我该如何执行这个HTTP Get请求呢? 以下是来自last.fm文档的更多信息: http://www.last.fm/api/webauth - Crothers
我更新了我的答案,包括一个解决技巧。基本上,你提供的链接中描述的API是用于被服务器端代码(或独立应用程序中的代码)访问,而不是从浏览器中的javascript访问。 - pkaeding
没有必要使用代理,因为$getJSON()是专门为这样的应用程序设计的。 - HurnsMobile

1

即使您以JSON格式获取响应,也无法直接从浏览器中的JavaScript访问服务。您仍然需要代理请求。 - pkaeding
这是显然错误的。请阅读有关$getJSON()的资料。 - HurnsMobile
我改正了我的说法。只要你将标志设置为指示JSONP,你就能够访问不同的来源。 - pkaeding
$.getJSON("http://www.last.fm/api/auth/?api_key=xxxxkeyxxxx&format=json", function(data){ window.console.log(data); });已添加JSON标志,但似乎仍然无法正常工作。 - Crothers
你需要在URL中添加回调函数,请查看我发布的示例。 - mcgrailm
显示剩余2条评论

1

$.getJSON("http://www.last.fm/api/auth/?api_key=c9946d11002aea09f23b14faac469ace&format=json&callback=?", function(data){ window.console.log(data); });这是代码。我得到了正确的返回值,但我在“syntax error [Break on this error] <!DOCTYPE html> \n”的返回中出现错误。 - Crothers
似乎是因为我请求了JSON响应,但返回的是HTML。 - Crothers

1

last.fm 会响应登录页面...请查看文档...

如果用户没有登录 Last.fm,他们将被重定向到登录页面,然后被要求授权您的 Web 应用程序使用他们的帐户。在此页面上,他们将看到您的应用程序名称,以及第一部分中提供的应用程序描述和徽标。

摘自

http://www.last.fm/api/webauth


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接