2012-09-25 13 views
10

Piszę aplikację internetową ajax, ale z jakiegoś powodu, gdy wykonuję GET przeciwko wewnętrznej usługi danych w Internet Explorer 9 (IE9) to nie działa. To samo połączenie działa doskonale w Chrome, Firefox i Safari. Używam lokalnego serwera WWW (wamp) do rozwoju i rozwijania w tej samej sieci co usługa danych, którą próbuję uderzyć. Używam Jquery 1.8.1 (wróciłem kilka wersji, ale nadal widzę problem). Mój kod wygląda tak:Jquery AJAX nie działa w 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); 

         } 
        }); 
      }); 

Jak już napisałem, ten kod działa poprawnie w Chrome i Firefox. W IE9, gdy patrzę na debuggera, nie ma błędów w dziennikach. To tak, jak IE9 po prostu kompletnie ignoruje fragment .ajax. Czego próbowałem:

  • Włącz Ajax buforowania Off
  • URL zakodowane moją prośbę URL
  • wrócił do trzech starszych wersji jQuery
  • Ręcznie ping moje URL z IE9 (w stanie uzyskać odpowiedzi)

Jakieś pomysły?

+0

jest to żądanie między domenami? –

+0

Czy robi to tak, gdy używasz najnowszej wersji jQuery 1.8.2? – Nope

+1

Hit F12 w IE, a następnie przejdź do zakładki Network. Załaduj stronę i zobacz, co robi żądanie. – Gromer

Odpowiedz

26

Look jest jak jego problem z

console.log()

IE nie ma obiektu konsoli Narzędzia dla programistów, gdy nie jest otwarty .. Spróbuj uruchomić swój kod komentując swoją console.log i spróbuj ponownie ..

$(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) 
     } 
    }); 
}); 

Jeśli chcesz użyć konsoli, trzeba najpierw określić, że jeśli nie jest otwarty narzędzie programisty ..

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

Całkowicie nie widziałem 'console.log', to spowoduje problemy w IE. Dobry połów! – Gromer

+2

@Gromer wyglądają: http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/ – moonwave99

+0

@ moonwave99, tak, użyłem wcześniej kilku owijaczy. Niestety, na obecnym koncercie nie robię dużo javascriptu, więc losowe 'console.log' nie zaszkodzi mi zbytnio. Zakładam ten link. – Gromer

Powiązane problemy