Hola,
¿Como puedo hacer por AJAX peticiones a otro servidor diferente de donde esta alojada la web?
Estoy buscando y no encuentro nada claro,
Un saludo
| |||
Re: Petición datos de otro servidor Creo que por seguridad, ajax no permite cargar nada que este fuera de tu dominio :]
__________________ » Presupuesto Pagina Web |
| |||
Re: Petición datos de otro servidor Si es obtener el codigo HTML de una web, puedes hacerlo con PHP aunq hay algunas webs q no permiten hacer eso. Una vez con el Codigo HTML de la web, ya puedes recorrerlo en busca de lo que necesites... Es lo unico que se me ocurre :D
__________________ » Presupuesto Pagina Web |
| |||
Re: Petición datos de otro servidor gracias miSko... Yo lo que quiero es darles a los usaurios un enlace .js y de está forma que aparezca en su web los datos de mi base de datos que los obtengo con ajax. He probado en localhost y funciona pq esta bajo el mismo dominio pero al subirlo a interntet me tira el siguiente error, pq están en dominios diferentes. Error: uncaught exception: Permiso denegado al llamar al método Location.toString ... sigo luchando |
| |||
Re: Petición datos de otro servidor Hola GatorV, Gracias por tu respuesta, pero esta opción ya la he probao y tampoco me sirve pq yo ahora si puedo crear un proxy en mi servidor local pero cuando ya la web este operativa no tendré acceso a los servidores de los clientes para crearles un proxy, ...sigo/seguimos luchando |
| |||
Re: Petición datos de otro servidor Quizás te pueda ayudar con otras técnicas. ¿Puedes pegar aquí el contenido que devuelve la url que llamas mediante ajax? ¿O puedes pegar esa url aquí? Un saludo. |
| ||||
Re: Petición datos de otro servidor La idea es que sea algo así:
Código:
Es decir tu le das dos archivos al cliente, el proxy.php que es el archivo que se comunicara con original.php, y el archivo de enlace.js se comunicara con proxy en su servidor local.Servidor Cliente Servidor Web enlace.js -----------------> original.php proxy.php Saludos. |
| |||
Re: Petición datos de otro servidor Yo me refiero a que ajax no puede cargar datos de otro servidor pero javascript sí. El sistema es así: 1.- En el cliente se crea dinámicamente (por medio del DOM) una etiqueta script que carga javascript. 2.- El servidor devuelve javascript, en este caso una llamada a una función existente en el cliente. Ahí va el código: http://cliente.com/cliente.php
Código:
http://servidor.com/servidor.php<script type="text/javascript"> function aviso(datos) { alert(datos); var body = document.getElementsByTagName("body")[0]; var scr = document.getElementById("scriptTemporal"); body.removeChild(scr); } function cargarDatos() { var body = document.getElementsByTagName("body")[0]; var scr = document.createElement("script"); scr.setAttribute("type","text/javascript"); scr.setAttribute("src","http://servidor.com/servidor.php"); scr.setAttribute("id","scriptTemporal"); body.appendChild(scr); } </script> <input type="button" onclick="cargarDatos()"> Código PHP: |
| |||
Re: Petición datos de otro servidor Para explicarme mejor: la función del cliente cargarDatos genera dentro del body de la página esto:
Código:
Como ves, no carga un archivo .js si no que carga un .php que devuelve javascript, o sea, que es como cargar un .js generado dinámicamente.<script type="text/javascript" src="http://servidor.com/servidor.php" id="scriptTemporal"> </script> El javascript cargado sólo llama a la función aviso(datos) y le pasa el parámetro que necesita. Al final la función aviso(datos) muestra los datos recibidos y elimina ese script. Habrá que mejorarlo/adaptarlo pero funciona. Saludos |
| ||||
Re: Petición datos de otro servidor Muy buena forma de hacer las cosas vengava, y si quiere manipular los datos, lo que podría hacer es regresar los datos en JSON. Claro esto tiene un problema un poco grave de seguridad (para tu cliente) ya que al ser Javascript lo que se regresa se podría prestar a un ataque XSS. Saludos. |
| |||
Re: Petición datos de otro servidor Gracias GatorV y Agrey. Por el tema de la seguridad, habría que garantizar al cliente que los datos son de fiar. Aunque eso pasaría también con ajax, no? bueno no, porque los datos son del mismo servidor, pero si en servicios json externos. También habría que controlar quien accede a los datos de servidor.php, ya que supuestamente eso está hecho para clientes concretos, no? No debería de permitir peticiones de cualquier cliente. Habría que estudiar si el sistema puede provocar algún problema, pero lo que es la carga de datos remota, ya está solucionado. Por el tema de JSON, estoy de acuerdo, no he hecho ninguna prueba para este caso porque sólo necesitaba pasar un string o cualquier otra cosa, el tema era cargar algo remoto. El trabajo con el formato de los datos y la seguridad serían los siguientes pasos a dar. Un saludo y me alegro de haberte ayudado Agrey. |
| ||||
Re: Petición datos de otro servidor La cuestión es por decir si por X o Z razón llegan a hackear la web original, imagínate todas las webs donde usan el servicio remoto tendrían un grave problema de seguridad.. es por eso que yo recomiendo la opción que puse de usar un proxy local con PHP. Es más seguro, y se puede hacer un buen filtro de datos aunque la web original sea modificada. Saludos. |