Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2011, 18:03
SasoriOlkof
 
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)