2012-12-11 54 views
0

我寫了一個名爲test.jsp的頁面來學習如何從服務器獲取數據。 test.jsp的JS代碼:AJAX回調函數中的數據僅在IE8中未定義

我沒有首先添加{async: false}選項,但它沒有起作用。對於一個簡單的servlet

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $.get(
      "./tabServlet?t=" + new Date(), 
      { async: false }, 
      function(data) { 
       alert(data); 
      } 
     ); 
    }); 
</script> 

關鍵碼:

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException 
{ 
    PrintWriter out = response.getWriter(); 
    out.print("12345"); 
    out.close(); 
} 

的問題是,在IE8,alert(data)顯示undefined。 Chrome瀏覽器使用相同的代碼。誰能告訴我爲什麼這是?

+0

您可能希望使用'new Date()'.valueOf(),因爲它會生成一個不含空格的查詢參數。 IE8可能不喜歡在URL中有空格。 – zackg

+0

我試過了,不行。我認爲回調函數會運行,所以URL沒有錯,對嗎? – cloud

+1

網址可能不錯。您還應該嘗試在$ .get中指定您期待的數據類型。另外,您發送的「async」參數將作爲GET參數發送到服務器,與您是否進行異步請求無關。查看[$ .get()]的JQuery文檔(http://api.jquery.com/jQuery.get/) – zackg

回答

1

我在IE8中試過,它工作正常。 您可以調試代碼並查看代碼出了什麼問題,首先確保返回響應「12345」。

相關問題