2012-09-25 9 views
10

Ich schreibe eine Ajax-Webanwendung, aber aus welchem ​​Grund auch immer, wenn ich ein GET gegen einen internen Datendienst in Internet Explorer 9 (IE9) ausführen, funktioniert es nicht. Derselbe Anruf funktioniert in Chrome, Firefox und Safari einwandfrei. Ich benutze einen localhost Webserver (wamp) für die Entwicklung und Entwicklung im selben Netzwerk wie der Datendienst, den ich versuche zu treffen. Ich benutze Jquery 1.8.1 (ich habe ein paar Versionen zurückgenommen, sehe aber immer noch das Problem). Mein Code sieht so aus:Jquery AJAX funktioniert nicht in 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); 

         } 
        }); 
      }); 

Wie bereits erwähnt, funktioniert dieser Code in Chrome und Firefox einwandfrei. In IE9, wenn ich auf den Web-Debugger schaue, gibt es keine Fehler in den Protokollen. Es ist wie IE9 ist nur komplett ignorieren den .ajax Chunk. Dinge, die ich habe versucht:

  • Schalten Ajax Caching Off
  • URL meine Anfrage-URL codiert
  • zu drei ältere Versionen von JQuery
  • manuell pinged Wir gingen zurück meine URL von IE9 (in der Lage, eine Antwort zu bekommen)

Irgendwelche Ideen ??

+0

ist dies eine Cross-Domain-Anfrage? –

+0

Funktioniert das bei der Verwendung der neuesten Version von jQuery 1.8.2? – Nope

+1

Hit F12 in IE, dann gehen Sie auf die Registerkarte Netzwerk. Laden Sie die Seite und sehen Sie, was die Anfrage macht. – Gromer

Antwort

26

Looks wie sein ein Problem mit

console.log()

IE hat keine Konsolen-Objekt, wenn Entwickler-Tools sind .. nicht öffnen Versuchen Sie Ihren Code ausgeführt wird, indem Sie Ihre console.log zu kommentieren und versuchen wieder ..

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

wenn Sie Konsole verwenden möchten, müssen Sie zunächst das definieren, wenn der Entwickler-Tool nicht geöffnet ist ..

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

Ich habe die 'console.log' nicht vollständig gesehen, dies wird Probleme in IE verursachen. Guter Fang! – Gromer

+2

@Gromer werfen Sie einen Blick: http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/ – moonwave99

+0

@ moonwave99, ja, ich habe ein paar Wrapper zuvor verwendet. Leider mache ich bei meinem jetzigen Auftritt nicht viel Javascript, so dass zufällige 'console.log's mir nicht zu sehr weh tun. Ich bookmarke diesen Link. – Gromer