Pergunta

Can JavaScript carregar um feed XML RSS de Yahoo ?

É JS do lado do cliente permitido domínios 3rd-party de acesso?

Foi útil?

Solução

Você pode usar a técnica descrita no meu blog guia Unwritten a Yahoo consulta Langauge

Você iria consultar a tabela de dados XML com uma indicação yql assim:

select * from xml
  where url="http://path/to/xml
Então você teria que adicionar uma marca de script para o seu html (pode ser feito com document.createElement ( 'script')) com uma src http://query.yahooapis.com/v1/public/yql?q={your yql aqui} & format = json & callback = {a sua função aqui} onde {seu yql aqui} é substituir por uma versão URI codificado de vocês YQL statment.

Outras dicas

Uma maneira fácil de fazer isso é para o proxy o pedido através do servidor que sua página reside. Passos são:

  1. escrever um script do lado do servidor executa uma solicitação HTTP no feed RSS, quando esse script em si é pedido (ou seja, via GET ou POST)
  2. usar AJAX para solicitar o script do lado do servidor, ou apenas chamá-lo a partir do script principal para essa página.
  3. O script do lado do servidor, em seguida, retorna a fonte de alimentação de uma forma apresentável.
  4. lucro!

No IE 8 e FF 3.1 (não determinado), é possível fazer essas solicitações através de chamadas do site cruzadas especializados, mas a última geração de navegadores ainda vai causar problemas. Veja:

http://dannythorpe.com/ 2009/01/15 / IE8-cross-domain-request-support-demo / http://ejohn.org/blog/cross-site-xmlhttprequest/ Característica é restrito em FF 3.0, não está claro se ele vai estar de volta em 3.1

No entanto, os passos acima são garantidos para não entrar em conflito com qualquer segurança CSS navegador, à custa de algum atraso e carga hw extra em seu servidor.

Você pode usar o Google alimentação API para carregar RSS em JavaScript de qualquer domínio / servidor . Mais do que apenas um proxy, ele realmente serve o conteúdo RSS a partir do cache do Google em vez de bater o servidor original. Este poderia ser um salva-vidas para pequenos servidores que não podem lidar com o tráfego Slashdot surtos.

Eu usei a API de alimentação para um cross-site Acesso RSS em uma artigo sobre Silverlight há vários anos.

Eu não tenho certeza sobre JS, mas eu sei que você pode usar um dos APIs do Google e eles têm um leitor de RSS. Eu sei que isso provavelmente não é o que você quer, mas se você ler a documentação que você pode ser capaz de obter a sua resposta sobre como ele funciona.

Não diretamente. Você pode usar a sugestão de proxing o pedido, ou olhar para um método chamado JSONP, que essencialmente envolve o objeto JSON retornado em uma função de retorno de costume, solicitado por uma tag script que você injetar em seu DOM de Dana. A maioria dos provedores de API apoiar esta (incluindo APIs do Yahoo).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top