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