2013-07-01 40 views
1

我試圖將scrobble支持集成到Ubuntu Touch的音樂應用程序中,但由於我似乎無法獲得會話密鑰工作,所以我遇到了一些困難。XMLHttpRequest在使用Last.fm時給出無效狀態API

在請求()我得到「錯誤:無效狀態」在行53上。看起來像last.fms API沒有正確回答,也沒有正確的狀態,但我是新來的XMLHttpRequest,所以我不是肯定是怎麼回事。

代碼:http://pastebin.com/Aa6DVUA1

+0

xhr.status在53行的值是多少? – Vincent

+0

我沒有得到任何,只有「無效狀態」 –

+0

嗯,你可以發佈你完整的要求嗎? (網址,標頭等) – Vincent

回答

1

你執行encodeURIComponent與完整的URL,而不是單獨的查詢參數,從而導致像https%3A%2F%2Fws.audioscrobbler.com%2F2.0%2F%3Fmethod%3Dartist.getsimilar%26artist%3DKiss...這顯然不是一個有效的URL。有關示例,請參閱here

其次,您對XMLHttpRequest的使用是錯誤的,XHR異步運行,但您從不爲您的請求定義回調函數。詢問xhr.readyStatexhr.status在調用send()之後立即在請求實際完成之前執行。有關如何使用XHR,請參閱here

PS:爲什麼不使用現有的API封裝器之一,即http://lastfm.felixbruns.de/javascript-last.fm-api/或至少jQuery來處理XHR?

PPS:您的身份驗證請求無效,因爲您需要在帖子正文中提交參數,而不是查詢字符串,請參閱this forum post以獲取更多信息。

+0

非常感謝!我已經嘗試了很多東西 - 併發送了正文,但我在理解Last.fm的API說明方面遇到了一些困難。這可能會對我有所幫助。 PS:現有的API封裝:「Scrobbling尚未支持」。這就是爲什麼。 –