2009-03-19 10 views

Odpowiedz

2

Można użyć techniki opisanej w moim blogu Unwritten guide to Yahoo Query Langauge

Można by zapytać tabeli danych XML z statment YQL jak ten:

select * from xml 
    where url="http://path/to/xml
Następnie należy dodać tag skryptu do kodu HTML (można zrobić z document.createElement ('script')) z src http://query.yahooapis.com/v1/public/yql?q={your yql tutaj} & format = json & callback = {twoja funkcja tutaj} gdzie {twój yql tutaj } jest zamieniany na URI zakodowaną wersją twojego YQL.

+0

Cholernie dobry pomysł. W pewnym sensie przypomina to serwer proxy na moim własnym serwerze! –

+0

To lepsze niż posiadanie własnego serwera proxy, ponieważ możesz filtrować dane na serwerze Yahoo, zanim jeszcze zostanie do ciebie wysłany, będzie to wymagało wiele wysiłku, aby zrobić to z osobistym proxy. – jasonincode

0

Nie jestem pewien co do JS, ale wiem, że można użyć jednego z google's APIs i mają czytnik RSS. Wiem, że to prawdopodobnie nie jest to, czego chcesz, ale jeśli przejrzysz dokumentację, możesz uzyskać odpowiedź na pytanie, jak to działa.

2

Łatwym sposobem na wykonanie tego zadania jest przekazanie żądania za pośrednictwem serwera, na którym znajduje się Twoja strona. Kroki są:

  1. napisać skrypt po stronie serwera wykonuje żądania HTTP na RSS, kiedy ten sam skrypt jest wniosek (tj poprzez GET lub POST)
  2. Używaj ajax żądania skrypt po stronie serwera, czy po prostu wywołaj go z głównego skryptu dla tej strony.
  3. Skrypt po stronie serwera zwraca źródło kanału w postaci możliwej do wyświetlenia.
  4. Zysk!

W wersjach IE 8 i FF 3.1 (nie pewne) można wysyłać żądania za pośrednictwem specjalistycznych połączeń między lokacjami, ale ostatnia generacja przeglądarek nadal będzie powodować problemy. Zobacz:

http://dannythorpe.com/2009/01/15/ie8-cross-domain-request-support-demo/ http://ejohn.org/blog/cross-site-xmlhttprequest/ jest zastrzeżona w FF 3.0, jasne, czy będzie to powrót w 3,1

Jednak powyższe kroki są gwarantowane, aby nie zabrakło w konflikt z jakichkolwiek zabezpieczeń CSS przeglądarki, kosztem niektórych opóźnienie i dodatkowe obciążenie hw na serwerze.

0

Nie bezpośrednio. Możesz użyć sugestii Dany dotyczącej żądania lub spojrzeć na metodę o nazwie JSONP, która zasadniczo opakowuje zwrócony obiekt JSON w niestandardowej funkcji wywołania zwrotnego, żądanej przez znacznik skryptu, który wstrzykniesz do DOM. Obsługuje to większość dostawców API (w tym interfejsy API Yahoo).

2

Możesz użyć Google Feed API, aby załadować RSS w JavaScript z dowolnej domeny/serwera. To nie tylko serwer proxy, ale służy do przesyłania treści RSS z pamięci podręcznej Google zamiast trafiania na oryginalny serwer. Może to być ratunkiem dla małych serwerów, które nie są w stanie poradzić sobie z ruchami w sieci Slashdot.

Użyłem interfejsu API Feed dla dostępu do cross-site RSS w article on Silverlight kilka lat temu.