AJAX - PROBLEMA - STRING EXTERNO AJAX

 
Vista:

PROBLEMA - STRING EXTERNO AJAX

Publicado por Jonathan (1 intervención) el 25/10/2006 21:43:34
El problema radica que que da un error de javascript al ejecutarse, por trabajar con dos dominios distintos, y que no quiero que aparezca la molesta advertencia de seguridad que sale al cargarse AJAX... Estos dos puntos son imprescindibles, dado que no debe de ser una molestia para el cliente, y si tiene que aceptar una advertencia para que se cargue su pagina, no lograre venderselo. Esto es un sistema de add-server como el de goolge, o ad-brite.

Hay tres formas de publicidad:

1)Publicidad por banner: Que imprime una imagen (banner) envuelta en los tag's <a href></a>. Estos tags los recibe con este formato en un string impreso en el navegador: <a href=url_destino'> <img src='"url_imagen"' ></a>.

2)enlace de texto: Lo mismo pero en lugar de sacar una imagen saca un enlace de texto.

3)Hypervinculo por palabras: Toma de un string separado por palabras una url y varias palabras. primero la url seguida de las palabras. Y debe sustituir esas palabras en la pagina del cliente por un enlace a la url. ejmeplo: recibe"http:// www.miweb.com hola perro casa "y siempre que esas tres palabras aparezcan en el navegador deben salir asi: <a href='http:// www.miweb.com '>casa</a>





Para publicidad por Banner y enlace de Texto uso este código:





function clientSideInclude(id, url) {

var req = false;

if (window.XMLHttpRequest) {

try {

req = new XMLHttpRequest();

} catch (e) {

req = false;

}

} else if (window.ActiveXObject) {

// For Internet Explorer on Windows

try {

req = new ActiveXObject("Microsoft.XMLHTTP");

} catch (e) {

try {

req = new ActiveXObject("Microsoft.XMLHTTP");

} catch (e) {

req = false;

}

}

}

var element = document.getElementById(id);

if (!element) {

alert("Bad id " + id +

"passed to clientSideInclude." +

"You need a div or span element " +

"with this id in your page.");

return;

}

if (req) {

req.open('GET', url, false);

req.send(null);

element.innerHTML = req.responseText;

} else {

element.innerHTML =

"Sorry, your browser does not support " +

"XMLHTTPRequest objects. This page requires " +

"Internet Explorer 5 or better for Windows, " +

"or Firefox for any system, or Safari. Other " +

"compatible browsers may also exist.";

}

}

</script>



Y lo llamo en el body con un:



Onload="clientSideInclude('includeone', ' http://www.mi_url_en_otro_server.php?id=3');"





Esto lo que hace en ambos casos, es llamar a la URL que le paso, la cual imprime en el navegador la publicidad, con formato HTML. Es decir imprime o un banner o un enlace de texto envueltos en la etiqueta <a href=''.></a>. Y después lo sustituye en la parte del HTML donde el cliente haya puesto la etiqueta



<span id='includeone'></span>.

El ultimo de los códigos de publicación, lo que hace es parecido. Llama a esa misma URL en mi Server , y esta imprime en el navegador una cadena de texto separada por espacios, consistente en una URL de destino y varias palabras. El código AJAX le esta cadena, y la divide en un array por donde están los espacios. Y remplaza cada palabra en el HTML del cliente por un link a la URL de destino que recibe.



El código es el siguiente:



<script language="javascript" type="text/javascript">

<!--

function oAjax(){

try{

oAjax = new ActiveXObject("Msxml2.XMLHTTP ");

}

catch(e){

try{

oAjax= new ActiveXObject(" Microsoft.XMLHTTP");

}

catch(E){

oAjax= false;

}

}

if (!oAjax && typeof XMLHttpRequest!='undefined') {

oAjax = new XMLHttpRequest();

}

return oAjax

}



//colocar en el tag body

// onload="fSustituirAjax();"

function fSustituirAjax(){

_oAjax=oAjax()

//id del cliente

_values_send="id=1"

//ruta y pagina que devolvera las variables

_URL_=" http://www.mi-url-en-otro-server/pagina.php?"

_oAjax.open("GET",_URL_+"&"+_values_send,true);

_oAjax.onreadystatechange=function(){

if (_oAjax.readyState==4){

if(_oAjax.status==200){

var sValorDevuelto = _oAjax.responseText;

//aValores[0] debe contener la url, el resto seran las palabras a reemplazar

var aValores = new Array();

aValores = sValorDevuelto.split(" ");

alert(aValores)

var oBody = document.getElementsByTagName("body");

var sNuevoTag = '';

for (var i = 0;i < aValores.length;i++)

{

sNuevoTag = '<b><a href="' + aValores[0] + '">' + aValores[i] + '</a></b>';

oBody[0].innerHTML = oBody[0].innerHTML.replace(aValores[i],sNuevoTag);

}

}

}

}

_oAjax.send(null);

}



</script>





Y se le llama en el body de esta manera:



<body onload="fSustituirAjax(true);">


Esto en local funciona de pm... incluso cnd esta colgado en el server pero ejecutando el script desde mi maquina en local. Pero en cuanto lo ejecutas en otro dominio da el siguiente error:

"Error: uncaught exception: Permiso denegado para llamar el método XMLHttpRequest.open"

Y esta la razón que parece genera el error:

"ese error ocurre porque con un XMLHttpRequest no puedes pedir datos de otro dominio, solo trabajar con el dominio local, es por razones de seguridad."

Y siempre que cargo la pagina del cliente... en local, en el server... dnd sea me da una advertencia de seguridad muy incomoda, que dee de ser aceptada para que muestre la pagina:

"Esta pagina esta intentando el acceso a informacion fuera de su control. Esto presenta un riesgo de seguridad.¿Desea Continuar?"


¿Cómo tengo que hacer para solucionarlo? desde ya muchas graxias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PROBLEMA - STRING EXTERNO AJAX

Publicado por magno (1 intervención) el 19/03/2008 16:15:51
envío de mails
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROBLEMA - STRING EXTERNO AJAX

Publicado por sabio (1 intervención) el 31/03/2009 01:45:40
Es re facil, pero no te voy a dar la solucion..... jajajaja... ARREGLATE COMO PUEDAS. SOS UNA VERGUENZA PARA LA INFORMATICA.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROBLEMA - STRING EXTERNO AJAX

Publicado por Diego (2 intervenciones) el 27/11/2009 21:18:38
no se puede por seguridad de actionscript, para no ser un lenguaje robot o boot tiene esas restricciones inapelables
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROBLEMA - STRING EXTERNO AJAX

Publicado por Diego (2 intervenciones) el 27/11/2009 21:47:33
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netscape.security.PrivilegeManager.enablePrivilege("UniversalFileRead");
netscape.security.PrivilegeManager.enablePrivilege("CapabilityPreferencesAccess ");
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserAccess");

// esta es la solucion man!! puedes chequearlo ya lo hice
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar