Foros del Web » Programando para Internet » Javascript »

Error en petición AJAX a otro servidor

Estas en el tema de Error en petición AJAX a otro servidor en el foro de Javascript en Foros del Web. Hola a todos, tengo un problemilla, resulta que desde una página hago una llamada AJAX a un servicio alojado en otro servidor, y resulta que ...
  #1 (permalink)  
Antiguo 25/02/2013, 11:17
 
Fecha de Ingreso: julio-2010
Mensajes: 298
Antigüedad: 14 años, 5 meses
Puntos: 8
Error en petición AJAX a otro servidor

Hola a todos, tengo un problemilla, resulta que desde una página hago una llamada AJAX a un servicio alojado en otro servidor, y resulta que siempre me entra en la parte de "RESPONSE KO", cuando sé perfectamente que dicho servicio funciona perfectamente.
Alguien sabe a que se debe?
Les dejo el trozo de código que estoy usando en mi pa´gina:
Código:
function init() {
    ajaxFunction('http://myOtherDomain/MyService.ashx', "", OnOK, OnKO);
}
function OnOK() {
	alert("Ok");
}
function OnKO() {
	alert("Ko");
}
function ajaxFunction(url, params, ret_fun_ok, ret_fun_nook) {
    var xmlHttp = createXMLHttp();

    xmlHttp.open("POST", url, true);

    //Send the proper header information along with the request
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", params.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(params);

    xmlHttp.onreadystatechange = function ext2() {
        if (xmlHttp.readyState == 4) {
            alert("xmlHttp.status = " + xmlHttp.status);
            if (xmlHttp.status == 200) {
                ret_fun_ok(xmlHttp.responseText);
            } else {
                ret_fun_nook();
            }
        }
    };

}
function createXMLHttp() {
    if (typeof XMLHttpRequest != 'undefined')
        return new XMLHttpRequest();
    else if (window.ActiveXObject) {
        var avers = ["Microsoft.XmlHttp", "MSXML2.XmlHttp", "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.5.0"];
        for (var i = avers.length - 1; i >= 0; i--) {
            try {
                httpObj = new ActiveXObject(avers[i]);
                return httpObj;
            } catch (e) { }
        }
    }
    throw new Error('XMLHttp (AJAX) not supported');
}
  #2 (permalink)  
Antiguo 25/02/2013, 13:01
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Error en petición AJAX a otro servidor

Hola:

Por motivos de seguridad, un script no puede cargar y ver datos de otro dominio o puerto. el tema se llama "Politica del mismo origen" http://es.wikipedia.org/wiki/Pol%C3%...l_mismo_origen.

Tienes dos posibles soluciones.

Una, que depende de si el otro servidor lo soporta y está configurado para ello, además de que el navegador los soporte, es que el otro servidor "relaje" la política del mismo origen, de forma que permite que desde páginas de tu servidor se le puedan consutar sus datos. Aquí tienes detalles de cómo hacer todo esto http://enable-cors.org/index.html

La otra solución es que en tu servidor hagas algo que llame al otro para recoger los datos y haga de by-pass, proxy o como quieras llamarlo. Es decir, tu javascript hace la petición a tu servidor y este la reenvía al otro servidor, y devuelve a tu javascript los resultados que el otro le envía.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: ajax, distinto, dominio
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 06:05.