【问题标题】:jquery/ajax not working in ie9jquery/ajax 在 ie9 中不工作
【发布时间】:2013-08-27 14:51:41
【问题描述】:

我已经为 ie8(内部、公司)编写了一个环境。

最近,我们开始了 ie9 部署测试(我知道,它远远落后....)

我使用的应用程序无法运行。

我将 xua ie=edge 更改为 ie=8 并且 ie9 可以工作,但出于显而易见的原因,我不想将 ie 9 限制为 ie8s 渲染引擎。

不起作用的区域是菜单上的 ajax 填充调用。即,它打印

 <ul id = "ul_a1">   <li>loading...</li>  </ul>

来自源代码,并且 那么

var request = $.ajax({  
    url: "xxurlxxx"
    ,  type: "GET"              
    ,  cache: false
    ,  dataType: "html"
});
request.done(function(msg) {
    $("#ul_a1").html(msg);  
});

用选项列表填充它(此调用返回一堆 li)。

该区域保持“正在加载...”,并且 request.fail 也永远不会触发。

这个方法ie9不喜欢怎么办? URL 是本地的,而不是 xdomain。

【问题讨论】:

  • 它给出的错误是什么?
  • 开发者工具中是否出现错误? (在您的页面上按 F12)
  • 控制台窗口中是否出现任何错误?
  • 我确实注意到您有一个 id=a1 的
      ,但您使用 #ul_a1 作为选择器。这是不正确的...您应该使用 ul#a1
  • @MrP 我同意,但这在 IE8 中也行不通。

标签: jquery ajax internet-explorer-8 internet-explorer-9


【解决方案1】:
$.ajax({  
    url: "xxurlxxx",
    type: "GET",          
    cache: false,
    data: {
       someparam: "somevalue"
    },
    dataType: "html",
    success: function (data) {
        // do something with data
    }
});

如果您只是添加一些 html 生成的服务器端,那么您可以尝试:

$('#element').load(url);

如果这没有帮助,那么您可能需要对您的网址进行编码。

【讨论】:

  • 网址很简单(1 个 int 参数)页面?do=actionID 所以我不相信这是一个编码问题。我过去使用过负载,但它似乎没有像我预期的那样工作。此外,我的帖子请求在某些地方也失败了,因此负载将无法正常工作。
  • @briansol 那么你必须输入url:"page",data:{'do':actionID}
  • 这是一个获取,而不是一个帖子。
【解决方案2】:

这看起来根本不是问题。相反,之前加载的 html5 canvas 元素抛出了一个 dom 异常错误,这导致它之后的一切都崩溃了。

ie8 不使用画布,它使用 div。 ie9 必须尝试渲染它(我正在使用带有 flot 图形库的 excanvas 包含)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多