Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

N3G4T1V3

Problema com load de um RSS

Recommended Posts

Pessoal... seguinte to quebrando a cabeça com isso.. fiz um código que lê um RSS.. até ai tudo lindo quando compilo o flash ele traz bonitinho.. agora a treta acontece quando vou carregar ele no browser.. dai o negocio para de funcionar... ele me traz tudo como undefined...

 

Tentei já utilizar esses códigos que axei na net pra ver se era algum tipo de bloqueio:

 

System.useCodepage = true;

System.security.allowDomain("*");

System.security.allowInsecureDomain("*");

System.security.allowInsecureDomain("rss.terra.com.br");

System.security.allowDomain("rss.terra.com.br");

 

Tentei colocar isso no codigo que carrega o flash no html

 

<param name="allowScriptAccess" value="always" />

 

Entre outros testes e nada...

 

O Código é esse:

 

var MeuXML:XML = new XML();
		MeuXML.load("http://rss.terra.com.br/0,,EI294,00.xml");
		MeuXML.ignoreWhite = true;
		MeuXML.onLoad = function(success:Boolean) {
			if (success) {
				for (var i = 0; i<MeuXML.firstChild.childNodes[0].childNodes.length; i++) {
					if (MeuXML.firstChild.childNodes[0].childNodes[i].nodeName == "item") {
						arrayNoticias.push([MeuXML.firstChild.childNodes[0].childNodes[0].firstChild.nodeValue, MeuXML.firstChild.childNodes[0].childNodes[i].childNodes[0].firstChild.nodeValue]);
					}
				}
			}
		};

 

Ele lê o rss e coloca as noticias em um Array.. dai depois eu fico lendo esse array e jogando as noticias na tela..

 

Se alguem tiver uma luz ai agradeceria mto....

 

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera ninguem nunca teve nenhum problema relacionado?! Realmente tava precisando de uma luz pra isso...

Já tentei tudo que achei por ai e nada me justificou o problema que estou tendo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu teste muito aqui, e vi que o problema é no flash

 

ele não carrega arquivos de domínios diferente, apenas do mesmo domínio, ou de um subdomínio,

até é possível fazer ele carregar de outro, mas o domínio que tem o arquivos que você quer carregar (o terra no seu caso), precisa criar um arquivo na raiz do site, um arquivo XML com o nome de crossdomain.xml, você pode até pesquisar no google por ele

 

nesse arquivo o domínio especifica quem pode carregar algo dele, e o do terra não permitiu ser carregado por outros,

dá para ver aqui http://www.terra.com.br/crossdomain.xml

 

 

para funcionar o XML deveria ser assim:

 

<?xml version="1.0"?>
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

 

assim ele libera para qualquer domínio carregar dele

 

 

 

be, pelo que vi não vai ter como fazer....

 

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só é estranho cara pois quando eu executo o flash dando um ctrl+enter a aplicação funciona com o RSS do terra.. dai quando coloco no browser que para.. segue screens da tela pra você entender...

 

Esse seria o compilado direto do flash:

Imagem Postada

 

Esse seria o carregado no browser

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

no no flash funcionar mesmo, pois ele não esta rodando de nenhum domínio,

o problema é a comunicação entre domínios, tenta carregar esse XML do meu dominio:

http://www.ederfortunato.com/testexml.xml

 

 

você vai conseguir carregar ele se testar no browser, pois eu permitir criando esse arquivo na raiz do

meu domínio : http://www.ederfortunato.com/crossdomain.xml

 

 

se eu tirar esse crossdomain.xml de lá, você não vai conseguir carrega-lo

 

essa é uma medida de segurança do flash, não conseguir achar um modo de quebra-la...

 

caso você ache algo pode deixar ai pro pessoal ver como fazer

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

acabei achando a solução

 

ao invés de fazer o flash carregar o xml do rss, você vai criar uma pagina .php que faz isso, ai é só fazer o flash carregar essa pagina.php

 

 

ou seja criar um arquivo chamado carrega.php com esse código

 

 

<?
$theUrl = $_GET['url'];
$content = file_get_contents($theUrl);
echo $content;
?>

 

 

e no flash você carregaria assim

 

 

MeuXML.load("carrega.php?url=http://rss.terra.com.br/0,,EI294,00.xml");

 

isso já deve fazer funcionar

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu não manjo muito de ASP, não sei qual o comando equivalente dele para o file_get_contents() do PHP

 

vai no fórum de ASP e pergunta para o pessoal lá como pegar o html de um site e imprimir( com response.write()) no sua pagina

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu não manjo muito de ASP, não sei qual o comando equivalente dele para o file_get_contents() do PHP

 

vai no fórum de ASP e pergunta para o pessoal lá como pegar o html de um site e imprimir( com response.write()) no sua pagina

 

 

[]´s

no flash, eu usaria o mesmo codigo acima que não terá problemas nenhum correto?

 

 

MeuXML.load("carrega.php?url=http://rss.terra.com.br/0,,EI294,00.xml");

Thankss....

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal, o script asp, encontrei lá no forum de asp.

Mas, estou usando o seguinte codigo no meu flash:

 

só tem isso mesmo no flash - 1º frame

this._lockroot = true; //estou usando esse codigo, pq precisarei abrir este swf dentro de outro swf
MeuXML.load("lerxml.asp?url=http://rss.home.uol.com.br/index.xml");

mas, não aparece nada quando executo o swf.

 

estou com dificuldades (acredito que na interpretação dos campos do asp para o flash)

não estou sabendo, qual codigo colocar no flash, para ler os campos do asp.

código asp "lerxml.asp" abaixo:

<%
' Script ASP Para leitura de arquivos de RSS.
url = "http://rss.home.uol.com.br/index.xml" 'Aqui vai o endereço do arquivo RSS, ou do arquivo "gerador"

' Criando Objeto XML
Set objXML = Server.CreateObject("msxml2.DOMDocument.3.0")
objXML.async = false
objXML.setProperty "ServerHTTPRequest", True

' Não validar o arquivo
objXML.validateOnParse =false' true

' Retirar espaços
objXML.preserveWhiteSpace = false

blnLoaded = objXML.Load(url)
If Not blnLoaded Then
		Response.write "Nenhuma notícia na fonte!"
Else
		set objNodeList = objXML.getElementsByTagName("channel")

		For Each objNode In objNodeList
				For Each objNode2 In objNode.childNodes

				Select Case objNode2.nodeName
				Case "title"
						html = html &"<tr><td><b>"
						html = html &objNode2.firstChild.nodevalue
						html = html &"</b></td></tr>"
				Case "link"
						html = html &"<tr><td><a target=_blank href="& objNode2.firstChild.nodevalue &">"
						html = html & objNode2.firstChild.nodevalue
						html = html &"</a></td></tr>"
				Case "description" 'Está desabilitado para exibir apenas os links
						html = html &"<tr><td><i>"
						html = html & objNode2.firstChild.nodevalue
						html = html &"</i></td></tr>"
				End Select
				Next
		Next

		html = html &"<tr><td><hr></td></tr>"

		Set objNodeList = objXML.getElementsByTagName("item")
		For Each objNode In objNodeList
				For Each objNode2 In objNode.childNodes
						Select Case objNode2.nodeName
						Case "title"
								strTitle = objNode2.firstChild.nodevalue
						Case "link"
								strURL = objNode2.firstChild.nodevalue
						Case "description"
								strDescription = objNode2.firstChild.nodevalue
						End Select
				Next

				html = html &"<tr><td><li/><b><a target=_blank href="& strURL &">"& strTitle &"</a></b><br>"& strDescription &"</td></tr>"
				strTitle = ""
				strURL = ""
				strDescription = ""
		Next

		html = "<table>"& html &"</table>"
		set objNodeList = Nothing
End if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body>
<%
Response.write (html)
%>
</body>
</html>

Alguem poderia me ajudar nisso?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.