2012-09-25 26 views
10

Estoy escribiendo una aplicación web ajax pero por cualquier razón cuando realizo un GET contra un servicio de datos interno en Internet Explorer 9 (IE9) no funciona. Esta misma llamada funciona perfectamente bien en Chrome, Firefox y Safari. Estoy usando un servidor web localhost (wamp) para el desarrollo y desarrollo en la misma red que el servicio de datos que estoy tratando de alcanzar. Estoy usando Jquery 1.8.1 (he retrocedido algunas versiones pero aún veo el problema). Mi código se ve así:Jquery AJAX no funciona en IE9

$(document).ready(function() { 

        var loginUrl = "http://omittedurl.com"; 
        console.log(loginUrl); 
        $.ajax({ 
         type : "GET", 
         url : loginUrl, 
         dataType : "json", 
         success : function(response) { 
          console.log("RESPONSE: " + response); 

         } 
        }); 
      }); 

Como dije antes, este código funciona bien en Chrome y Firefox. En IE9 cuando miro el depurador web no hay errores en los registros. Es como si IE9 estuviera completo ignorando el fragmento .ajax. Cosas que han intentado:

  • Encienda Ajax Almacenamiento en caché Desactivado
  • URL codificada mi URL de solicitud
  • volvió a tres versiones anteriores de Jquery
  • manualmente ping a mi URL desde IE9 (capaz de obtener una respuesta)

¿Alguna idea?

+0

¿Es esto una solicitud cruzada de dominio? –

+0

¿Todavía lo hace cuando se utiliza la versión más reciente de jQuery 1.8.2? – Nope

+1

Pulse F12 en IE, luego vaya a la pestaña Red. Cargue la página y vea lo que está haciendo la solicitud. – Gromer

Respuesta

26

Look al igual que su un problema con

console.log()

IE no tiene objeto consola cuando Herramientas para desarrolladores no está abierto .. Pruebe a ejecutar su código comentando su console.log y tratar de nuevo ..

$(document).ready(function() { 

    var loginUrl = "http://omittedurl.com"; 
    //console.log(loginUrl); 
    $.ajax({ 
     type: "GET", 
     url: loginUrl, 
     dataType: "json", 
     success: function (response) { 
      // console.log("RESPONSE: " + response); 
      alert("RESPONSE: " + response) 
     } 
    }); 
}); 

Si desea utilizar la consola, es necesario definir primero si que no está abierto de herramientas para desarrolladores ..

if (typeof console === "undefined" || typeof console.log === "undefined") { 
    console = {}; 
+0

No vi totalmente 'console.log', esto causará problemas en IE. ¡Buena atrapada! – Gromer

+2

@Gromer eche un vistazo: http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/ – moonwave99

+0

@ moonwave99, sí, he usado un par de envoltorios antes. Desafortunadamente, no estoy haciendo mucho javascript en mi concierto actual, por lo que los 'console.log's aleatorios no me hacen demasiado daño. Estoy marcando ese enlace. – Gromer