2010-07-02 14 views
7

Próbuję wykonać żądanie HTTP za pomocą JQuery, ale otrzymuję pusty ciąg w odpowiedzi, więc myślę, że robię coś nie tak. Jako przewodnik użyłem dokumentacji z http://api.jquery.com/jQuery.get/.HTTP Uzyskaj żądanie w JQuery do Last.fm

Mój kod wygląda następująco

$.get("http://www.last.fm/api/auth/?api_key=xxxkeyxxx", function(data){ 
    window.console.log(data); 
    }); 

Edit: Mój kod wygląda teraz tak

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

Ale ja dostaję błąd składni [Przerwa na tym błędzie] \ n

A znajduje się w http://www.last.fm/api/auth/?api_key=c99ddddddd69ace&format=json&callback=?

Ostatnia edycja: Wydaje się to dlatego, last.fm reaguje z html nie JSON, jakieś pomysły zostaną docenione

Odpowiedz

1

last.fm odpowie strony logowania ... sprawdź dokumenty ...

Jeśli użytkownik nie jest zalogowany do Last.fm, to wi Zostanie przekierowany na stronę logowania na , zanim zostaniesz poproszony o przyznanie pozwolenia na użytkowanie swojej strony internetowej na . Na tej stronie ujrzą nazwę aplikacji , wraz z opisem aplikacji i logo jako dostarczonej w punkcie 1.

skopiowany z

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

3

Chyba że skrypt jest serwowane od www.last.fm, to nie będzie w stanie to zrobić, ze względu na ograniczenia nałożone przez przeglądarki.

Należy zbadać numer proxying the request za pośrednictwem serwera.

+0

Jak wykonać to HTTP Uzyskaj żądanie? Oto niektóre informacje z dokumentacji last.fm. http://www.last.fm/api/webauth – Crothers

+0

Zaktualizowałem moją odpowiedź, aby objąć technikę obejścia. Zasadniczo interfejs API opisany w podanym łączu ma być dostępny za pośrednictwem kodu po stronie serwera (lub kodu w autonomicznej aplikacji), a nie z javascript w przeglądarce. – pkaeding

+0

Nie ma powodu do proxy, ponieważ '$ getJSON()' został zaprojektowany specjalnie dla takich aplikacji. – HurnsMobile

1

przejmowanie jest częściowo poprawne - nie będziesz mógł tego zrobić w sposób, w jaki próbujesz, ale last.fm oferuje RESTful API z jsonem.

Last.fm API - http://www.last.fm/api/rest

jQuery API - http://api.jquery.com

+0

Nawet jeśli otrzymujesz odpowiedzi w JSON, nie będziesz w stanie uzyskać dostępu do usługi (bezpośrednio) z javascript w przeglądarce. Nadal będziesz musiał podać serwerowi proxy prośbę. – pkaeding

+0

To jest oczywiście fałszywe.Czytaj na '$ getJSON()'. – HurnsMobile

+0

Stoję poprawione. Dopóki ustawisz flagę, aby wskazać JSONP, powinieneś mieć dostęp do innego źródła. – pkaeding

1

trzeba użyć jsonp metodę iin coraz domenę przekrój dane here is an example and thread ktoś robi tak

+0

$ .getJSON ("http://www.last.fm/api/auth/?api_key=c9946d11002aea09f23b14faac469ace&format=json&callback=?", \t funkcja (dane) { \t \t window.console.log (dane); \t}); Kod wygląda następująco. Otrzymuję właściwą wartość zwracaną, ale otrzymuję błąd w zwrocie "błąd składni [Przerwij ten błąd] \ n" – Crothers

+0

Wygląda na to, ponieważ zażądałem odpowiedzi JSON, ale zwrot był w HTML – Crothers