我正在尝试将 scrobble 支持集成到 Ubuntu Touch 的音乐应用程序中,但我遇到了一些困难,因为我似乎无法让会话密钥正常工作。
在 request() 中,我在第 53 行得到“错误:无效状态”。似乎 last.fms API 没有正确回答,也没有正确的状态,但我是 XMLHttpRequest 的新手,所以我不确定是怎么回事.
代码: http: //pastebin.com/Aa6DVUA1
我正在尝试将 scrobble 支持集成到 Ubuntu Touch 的音乐应用程序中,但我遇到了一些困难,因为我似乎无法让会话密钥正常工作。
在 request() 中,我在第 53 行得到“错误:无效状态”。似乎 last.fms API 没有正确回答,也没有正确的状态,但我是 XMLHttpRequest 的新手,所以我不确定是怎么回事.
代码: http: //pastebin.com/Aa6DVUA1
您正在encodeURIComponent
使用完整的 URL 而不是单独的查询参数执行,从而导致类似https%3A%2F%2Fws.audioscrobbler.com%2F2.0%2F%3Fmethod%3Dartist.getsimilar%26artist%3DKiss...
这显然不是有效的 URL。有关示例,请参见此处。
其次,您对 XMLHttpRequest 的使用是错误的,XHR 是异步操作的,但您从未为您的请求定义回调函数。查询xhr.readyState
和xhr.status
调用后立即send()
将在请求实际完成之前执行。请参阅此处了解如何使用 XHR。
PS:为什么不使用现有的 JavaScript API 包装器之一,即http://lastfm.felixbruns.de/javascript-last.fm-api/或至少 jQuery 来处理 XHR?
PPS:您的身份验证请求将不起作用,因为您需要在帖子正文中提交参数而不是查询字符串,请参阅此论坛帖子以获取更多信息。