2012-12-11 51 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”。

相关问题