2012-09-25 80 views
10

我正在編寫一個ajax Web應用程序,但無論什麼原因,當我對Internet Explorer 9(IE9)中的內部數據服務執行GET時,它不起作用。在Chrome,Firefox和Safari中,這個調用也很完美。我正在使用本地主機Web服務器(wamp)來開發和開發與我嘗試訪問的數據服務相同的網絡。我正在使用Jquery 1.8.1(我回去了幾個版本,但仍然看到問題)。我的代碼如下所示:Jquery AJAX在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); 

         } 
        }); 
      }); 

正如我之前所述,此代碼在Chrome和Firefox上正常工作。在IE9中,當我查看Web調試器時,日誌中沒有錯誤。這就像IE9完全忽略了.ajax塊。事情我已經嘗試:

  • 打開阿賈克斯緩存關
  • URL編碼了我的請求URL
  • 回到三個舊版本的jQuery
  • 手動ping通我的網址,從IE9(能夠得到迴應)

任何想法??

+0

這是一個跨域請求? –

+0

當使用最新的jQuery版本1.8.2時,它會這樣嗎? – Nope

+1

在IE中點擊F12,然後轉到網絡選項卡。加載頁面並查看請求正在做什麼。 – Gromer

回答

26

看的像與

的console.log()

IE沒有控制檯對象時,開發人員工具不開的一個問題。通過註釋你的console.log嘗試運行你的代碼,並嘗試再次..

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

如果你想使用控制檯,您需要定義,首先如果開發工具的未打開..

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

我完全沒有看到'console.log',這會在IE中造成問題。接得好! – Gromer

+2

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

+0

@ moonwave99,是的,我之前使用過一些封套。不幸的是,在我目前的演出中,我沒有做太多的JavaScript,所以隨機的'console.log'並沒有太多傷害我。我正在爲該鏈接添加書籤。 – Gromer