【问题标题】:jQuery's ajax not working on IE6 :(jQuery 的 ajax 不能在 IE6 上运行 :(
【发布时间】:2013-04-02 03:07:26
【问题描述】:

我正在使用 asp.net mvc 开发一个网站,并且我有这张在单击时会触发 Ajax 事件的图像。它在 FF 和 IE 7 & 8 上工作得很好,但在 IE 6 上它甚至不调用控制器上的方法(我确实在那里放了一个断点并在调试模式下运行它来检查)。我已经在这几天了,找不到解决方案。这是我的代码:

    <img src="/Content/Images/img.png" onclick="HideAll(); GetMyVonparDiv(this); 
         $.ajax({ url: '/<%= Html.ViewContext.RouteData.Values["language"] %>/myvonpar/AddContent/?idContent=<%= ViewData.Model.id_content.ToString() %>&static=<%= ViewData.Model.is_static %>',
         type: 'GET',
         success: function (msg) { if (msg == 'True') { $(parentDiv).prev('.ok').show(); } else { $(parentDiv).show(); } },
         error: function (msg) {  }
    });" />

该方法的 url 生成正确 (/pt/myvonpar/AddContent/?idContent=258&amp;static=False),正如我之前所说,它适用于除 IE6 之外的所有其他浏览器:(


编辑:相同的 JS 代码被格式化以提高可读性:

HideAll();
GetMyVonparDiv(this); 

$.ajax({
    url: '/<%= Html.ViewContext.RouteData.Values["language"] %>/myvonpar/AddContent/?idContent=<%= ViewData.Model.id_content.ToString() %>&static=<%= ViewData.Model.is_static %>',
    type: 'GET',
    success: function (msg) { 
        if (msg == 'True') { 
            $(parentDiv).prev('.ok').show();
        } else { 
            $(parentDiv).show();
        }
    },
    error: function (msg) {  }
});

【问题讨论】:

  • 有时您需要停止支持十年前的浏览器。
  • 我从没见过onclick属性里面有这么多代码...
  • @Chris IE6 仍然保持两位数 (>10%)。也许在一年内......
  • 如果您将 onclick 处理程序放入单独的方法中而不是内联到 html 中,您将更容易调试。只是说:)
  • @Chris 维基百科是 7.6%。 Netapplications 为 13.72%。就像我说的,也许在一年内……你知道,2012 年,IE6 的终结 :)

标签: c# asp.net-mvc jquery internet-explorer-6


【解决方案1】:

我遇到了类似的问题,结果证明 IE 正在缓存 get 查询。见this link here

【讨论】:

  • +1,这也让我很难受。即使缓存不是问题,我也养成了设置 cache: false 和 ifModified: true 的习惯。
【解决方案2】:

尝试添加繁体:true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    相关资源
    最近更新 更多