Buenas,
he hecho un pequeño menu en flex que usa esta función para cargar a traves de AJAX un codigo html en un campo DIV.
Y me da el error "Permiso denegado" cuando hago el open desde javascript.
El fichero "prueba.txt" esta en la misma carpeta que el fichero index.html que contiene el codigo javascript y el html.
Estoy haciendo las pruebas en local, a traves de easyphp.
Si lo hago todo con codigo javascript, es decir, invoco todo el proceso sin que intervenga FLEX, funciona correctamente.
Código HTML:
<div align="center" class="Estilo1" onmousedown="cargar_pagina('prueba.txt')">cargar_pagina</div>
Pero cuando lo invoco desde flex a traves del externalinterface, el metodo open me da el $%$%& error.
No entiendo por que...
¿a alguien se le ocurre algo?
Codigo FLEX:
Código:
import flash.external.*;
public function processAjax():void
{ if (ExternalInterface.available)
{ var _f:String = "cargar_pagina";
var _m = ExternalInterface.call(_f,"prueba.txt");
trace("Call realizado:" + _m);
}
else
{ trace("La external interface no esta disponible.");
}
}
Codigo HTML:
Código:
<html>
<div id="contenedor" style="width:100%; height:100%; left:0px; top:0px; background-color:#0099FF"/>
</html>
Codigo JAVASCRIPT:
Código:
<script>
function NuevoAjax()
{var xmlhttp=false;
try
{xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{try
{xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E)
{xmlhttp = false;
}
}
if(!xmlhttp && typeof XMLHttpRequest!='undefined')
{xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function cargar_pagina (url)
{
alert("cargar_pagina");
ajax=NuevoAjax();
ajax.onreadystatechange=function(){alert("hola");
alert("readystate: "+ajax.readyState);
if (ajax.readyState==1)
{ //Sucede cuando se esta cargando la paginadocument.getElementById("contenedor").innerHTML = "cargando..."
}
else if (ajax.readyState==4)
{ //Sucede cuando la pagina se cargóif(ajax.status==200)
{ //Todo OKdocument.getElementById("contenedor").innerHTML = ajax.responseText;
}
else if (ajax.status==404)
{ //La pagina no existedocument.getElementById("contenedor").innerHTML = "La página no existe";
}
else
{ //Mostramos el posible errordocument.getElementById("contenedor").innerHTML = "Error:".ajax.status;
}
}
}
alert("open");
try
{ajax.open("GET", url, true);
}
catch (E)
{alert("Error con open: "+E.name);
alert("Mensaje: "+E.message);
}
alert("send");
ajax.send(null);
}
</script>