Estoy haciendo una solicitud de ajax desde un iframe que se inyecta en cada página mediante un complemento de IE. Estoy usando IE's cross domain request porque jQuery's ajax falla para IE. Esto funciona el 75% del tiempo en IE8 & 9. El otro 25%, el xdr.onload
ni siquiera se dispara.Respuesta incoherente ajax (XDR) de IE
El servidor php está haciendo su trabajo ... el registro se ve igual cuando onload
funciona y no se activa. Además, xdr.onerror
tampoco se activa.
¿Alguna idea?
thisURL = "http://example.com/getmsg.php?cmd=getMessage&iid=ddeb2c1228&uurl=http%3A%2F%2Fwww.cnn.com%2F&t=" + Math.random();
// Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.open("GET", thisURL);
xdr.onload = function() {
// this is sometimes called, sometimes not in IE
alert('INCONSISTENT ALERT');
callback(xdr.responseText);
};
xdr.send();
Solo una suposición aleatoria: podrías intentar agregar un parámetro sin sentido al final de la URL para asegurarte de que el navegador omite su caché ... Lo probaría yo mismo si me estuviera pasando a mí, pero es posible que no seas tan interesado en perder el tiempo en conjeturas completas :-) – Pointy
... o simplemente use 'POST' que no se almacenará en caché en absoluto. Además, vincularía 'xdr.onerror =' para ver si se dispara. Desafortunadamente, no hay una descripción del error para los errores XDR. Además, asegúrese de que el encabezado '' Access-Control-Allow-Origin '' está configurado a '*' – jAndy
@Point, t es en realidad math.random ... He editado mi respuesta. Es una buena suposición. Esto no se guarda en caché aunque – Kyle