Foros del Web » Programando para Internet » Javascript »

Petición a servidor externo Ajax

Estas en el tema de Petición a servidor externo Ajax en el foro de Javascript en Foros del Web. Hola, necesito hacer una petición ajax a un servidor externo con atutenficacion básica para ello tengo el siguiente código javascript Código PHP: function  nuevoAjax (){  ...
  #1 (permalink)  
Antiguo 15/12/2011, 18:03
 
Fecha de Ingreso: diciembre-2011
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 1
Pregunta Petición a servidor externo Ajax

Hola, necesito hacer una petición ajax a un servidor externo con atutenficacion básica

para ello tengo el siguiente código javascript

Código PHP:
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 
setHax(id,numero,valor){
    var 
call nuevoAjax();
    var 
destino 'conexion.php';
    
call.open("GET" destino true);
    
call.onreadystatechange = function(){
        if (
call.readyState == && call.status == 404){
            
window.location.href='http://domotics.eosoft.eu/'
        }
        else if (
call.readyState == && call.status == 200){
            
setValidado(id,numero,valor,call.responseText);
        }
    }
    
call.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    
call.send(' ');
}

function 
setValidado(id,numero,valor,conexion){
    var 
call nuevoAjax();
    var 
valores valores;
    var 
datos conexion.split("@",2);
    var 
credenciales datos[0];
    var 
ip  datos[1];
    var 
destino 'http://'+ip+'/do/set/'+valor+'/'+numero+'/'+id;
    
call.open("GET" destino true);
    
call.setRequestHeader('Authorization'"Basic " credenciales);
    
call.onreadystatechange = function(){
        if (
call.readyState == && call.status == 404){
            
window.location.href='http://domotics.eosoft.eu/'
        }
    }
    
call.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    
call.send(' ');

básicamente lo que hago es llamar al
setHax pasándole unos valores, este hace una llamada a "conexion.php" que tras comprobar que la sesión tiene privilegios, me da las credenciales necesarias para establecer la conexión con el servidor final algo así: "contraseñaenbase64@direccionip"

tras obtener estos datos se llama a setValidado y este monta una una url tipo "http://direccionip/[...]" y en el header de la petición le paso las credenciales en base64.

bien, pues esto me da error y no le encuentro solución, el navegador me dice "ReferenceError: Security violation" y no hace la petición final

Lo que viene siendo la forma de recoger la ip y las credenciales me lo hace bien, hasta he probado quitando la linea del setRequestHeader y me hace lo mismo.

me podéis echar un cable (o unas lineas xD)
  #2 (permalink)  
Antiguo 16/12/2011, 06:51
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: Petición a servidor externo Ajax

creo que no se puede hacer ajax a un servidor externo...

quizá con un iframe escondido y utilizando curl puedas apañarte
  #3 (permalink)  
Antiguo 16/12/2011, 09:48
 
Fecha de Ingreso: diciembre-2011
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Petición a servidor externo Ajax

gracias, ya lo probé antes y va bien, pero no funciona en algunos navegadores, y tengo especial interés en que funcione desde un ipad xD

me han dicho que pruebe a modificar el conexion.php para que en vez de darme los datos de conexión, que ejecutando un script de linux haga la llamada(y eliminando así la segunda llama ajax), pero tampoco lo consigo hacer funcionar. Sigo trabajando en ello jeje
  #4 (permalink)  
Antiguo 17/12/2011, 02:03
 
Fecha de Ingreso: diciembre-2011
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 1
Sonrisa Respuesta: Petición a servidor externo Ajax

Solucionado. la solución ha sido cURL de php jeje, no lo conocía

Etiquetas: ajax, externo, 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 17:46.