Foros del Web » Programando para Internet » Javascript »

conectar con archivo de otro servidor

Estas en el tema de conectar con archivo de otro servidor en el foro de Javascript en Foros del Web. Hola, no se en que foro colocar el tema, bueno lo que quiero saber es como conectarme con un archivo que se encuentre en otro ...
  #1 (permalink)  
Antiguo 09/11/2013, 18:39
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 20 años
Puntos: 0
conectar con archivo de otro servidor

Hola, no se en que foro colocar el tema, bueno lo que quiero saber es como conectarme con un archivo que se encuentre en otro servidor, por ejemplo estoy haciendo la prueba en local pero quiero que el archivo se conecte con un archivo php que se encuentra en mi servidor, concretamente esta parte

function presionBoton(e)
{

conexion1=crearXMLHttpRequest();
conexion1.onreadystatechange = procesarEventos;
conexion1.open('GET', http://servidor/projects/mysql.php, true);
conexion1.send(null);
}

pero no me muestra el resultado, si hago la prueba desde el mismo servidor si los muestra.

Saludos
  #2 (permalink)  
Antiguo 09/11/2013, 21:33
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: conectar con archivo de otro servidor

Hola,

Javascript , en este caso Ajax , no te deja hacer llamadas a otro dominio que no sea el propio,
este es una forma de seguridad, llamado tambien Cross Domain Calls,

algo que podrías hacer si quieres tener el resultado de otro dominio , es hacer el Ajax con Jquery a un documento php usando "POST" y como contenido la url de el documento del dominio que quieres acceder en tu localhost y utilizas la función php "file_get_contents()".

espero te sirva la idea.
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com
  #3 (permalink)  
Antiguo 09/11/2013, 22:34
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 20 años
Puntos: 0
Respuesta: conectar con archivo de otro servidor

Gracias por la respuesta, la probare si no consigo que funcione con AJAX Cross-Domain que encontre buscando por la web, es mas funciona, pero no me muestra el resultado como yo quiero, pongo el codigo para ver si alguien me puede echar una mano

Código:
<!DOCTYPE>
<html>
    <head>
        <meta charset="utf-8" />
        
    </head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

<!-- CSS -->
<style type="text/css">

</style>

<!-- Javascript -->
<script type="text/javascript">
jQuery(document).ready(function(){
    jQuery("#info").click(function(){
        jQuery.ajax({
            url: "http://miservidor.com/remoto.php",
            data: "ajaxCrossParam=1",
            type: "GET",
            dataType: "jsonp",
            success: function(data){ 
                jQuery("div.info").show();
                jQuery("div.info").append("<br/>id: " + data.id_bienes + "<br/>");
                jQuery("div.info").append("mensaje: " + data.precio + "<br/>");
                jQuery("div.info").append("Sector: " + data.nsector + "<br/>");
                jQuery("div.info").append("terreno: " + data.area_terreno + "<br/>");
            }
        });
    });
});
</script>

<!-- HTML -->

    <body>
        <a href="#" id="info">Obtener datos remotos</a>
        <div class="info"></div>
    </body>
</html>
y en el archivo remoto.php tengo

Código PHP:
<?php

if ($_GET['ajaxCrossParam'] == 1) {

    
$info = array();
    
$info['id_bienes'] = '10';
    
$info['precio'] = '5000';
     
$info['nsector'] = '1';
    
$info['area_terreno'] = '200';
    
    
$info['id_bienes'] = '102';
    
$info['precio'] = '20000';
     
$info['nsector'] = '4';
    
$info['area_terreno'] = '900';
    
    if (isset(
$_GET['callback'])) {
        echo 
$_GET['callback'] . '( ' json_encode($info) . ' )';
    } else {
        echo 
'callbackEjercicio( ' json_encode($info) . ' )';
    }

}
?>
de esa forma solo me muestra el ultimo resultado, ahora mi archivo php real que estaba utilizando es este

Código PHP:
<?php
Header
("content-type: application/x-javascript");
if (
$_GET['ajaxCrossParam'] == 1) {
require_once(
"JSON.php");
$json = new Services_JSON;

$conexion mysql_connect("localhost""usuario""pass");
mysql_select_db("base-datos"$conexion);

$queEmp "SELECT id_bienes,precio,nsector,area_terreno FROM bienes ORDER BY id_bienes ASC";
$resEmp mysql_query($queEmp$conexion) or die(mysql_error());
$totEmp mysql_num_rows($resEmp);

while (
$rowEmp mysql_fetch_assoc($resEmp)) {
    
$data[] = $rowEmp;
}

 if(isset(
$_GET['callback'])){ // Si es una petición cross-domain
           
echo $_GET['callback'].'('.json_encode($data).')';
        }
        else 
// Si es una normal, respondemos de forma normal
           
echo $json->encode($data);
           
           }
?>
el problema es que cuando uso ese archivo no me muestra los resultados me dice undefined.

en resumen, con el primer php me muestra solo el ultimo registro, y con el otro php que es el que quiero utilizar con los resultados de la base de datos, no me muestra los registros.
  #4 (permalink)  
Antiguo 10/11/2013, 19:52
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: conectar con archivo de otro servidor

Hola,

Mira , cree este pequeño ejemplo.. y trabaja bien con json...

en tu localhost idex.php o como lo ayas nombrado;
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
  3. $(document).ready(function(){
  4.   $("p").click(function(){
  5.       $.ajax({
  6.           url: "php_proxy.php",
  7.           data: "remoteDomain=http://remoto_domino/remoto.php",
  8.           type: "POST",
  9.           success: function(data){
  10.               console.log( $.parseJSON(data) );// obtenemos el contenido en json del dominio remoto
  11.           }
  12.       });
  13.   });
  14. });
  15. </head>
  16. <p>click here to pull info to localhost , from a remote domain</p>
  17. </body>
  18. </html>

ahora, el php_proxy.php esta localizado en tu locahost:

Código PHP:
Ver original
  1. <?php
  2.     if( isset( $_POST['remoteDomain'] )){
  3.         echo file_get_contents( $_POST['remoteDomain'] );
  4.     }
  5. ?>

Por ultimo, el archivo alque accedes remotamente en otro dominio..

remoto.php

Código PHP:
Ver original
  1. <?php
  2.         $jsonData = Array( 'foo' => 'yesfoo' , 'yeisdata' => 'contentdata');
  3.         echo json_encode( $jsonData );
  4. ?>

Lo probé en mi localhost y uno de mis dominios.. dándome el Json correctamente
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com

Última edición por utan; 10/11/2013 a las 19:58
  #5 (permalink)  
Antiguo 11/11/2013, 16:16
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 20 años
Puntos: 0
Respuesta: conectar con archivo de otro servidor

Que tal utan, gracias por el ejemplo, estoy probandolo el ejemplo pero a mi no me funciona, otra cosa, lo que necesito es que todos los archivos php esten en el servidor porque donde an a funcionar los html no tiene instalado php
  #6 (permalink)  
Antiguo 11/11/2013, 17:38
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: conectar con archivo de otro servidor

hola,

No entiendo, estas trabajando en localhost no?

No tienes instalado php en tu localhost?

Si entendí bien estas en localhost , donde estas probando .. si es así porque no tienes instalado php?

El ejemplo que te di trabaja a la perfección para mi, te da algún error?
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com
  #7 (permalink)  
Antiguo 11/11/2013, 17:42
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 20 años
Puntos: 0
Respuesta: conectar con archivo de otro servidor

Hola, s estoy trabajando en localhot bajo xampp, a lo ue me referia es que deswpues donde va a funcionar la web el servidor no tiene php por eso estaba probando con un servidor que tenga los php.
No me da ningun error solo aparece
click here to pull info to localhost , from a remote domain
hago click sobre la linea y en la pagina pero no pasa nada, tengo el archivo index y proxy.php en local, y el otro en el servidor, no cambie ningun nombre ni nada.

Este codigo me funciona

Código HTML:
<html>
<head>
<title>Form Posts with Ajax</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" >
jQuery(document).ready(function(){
   // jQuery("#info").click(function(){
        jQuery.ajax({
            url: "http://www.miservidor.com/projects/mysql.php",
            data: "ajaxCrossParam=1",
            type: "GET",
            dataType: "jsonp",
            success: function(data){ 
			var dataJson = eval(data);
             
            for(var i in dataJson){
               $('#results').append("ID: " + dataJson[i].id_bienes + " Precio: " + dataJson[i].precio + " Sector: " + dataJson[i].nsector + "<br>");
            }
             
        },
        error: function (obj, error, objError){
            //avisar que ocurrió un error
        }
			
           
        });
  
});
</script>
</head>
<body>
<div id="results"></div>
</body>
</html> 
utilizando el mismo codigo php que puse arriba que busca en la base de datos, claro me muestra toda la informacion directa en la pagina sin usar un boton o algo, eso aun no se bien como hacerlo, o lo que me gustaria tambien es saber como apsar variables, por ejemplo para hacer loguin desde local, al php que esta en el servidor y devuelva la respuesta.

Última edición por pakillo; 11/11/2013 a las 17:49
  #8 (permalink)  
Antiguo 12/11/2013, 00:20
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: conectar con archivo de otro servidor

Ok,

Mira primero que nada no uses "eval ()", ya que Jquery tiene el método "parseJSON()" ..

Ademas si en tu código creo que necesitas el parametro crossDomain: true , intenta agregando eso....
Que output te da el request que haces, podrias explicar mejor con detalles/?
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com

Etiquetas: php, servidor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:22.