【问题标题】:Ajax not work on IE10Ajax 不适用于 IE10
【发布时间】:2013-03-25 03:30:53
【问题描述】:

我有一个使用 jquery ajax 发布的演示。它可以在 Chrome 和 Firefox 上运行,但不能在 IE10 上运行。这是我的演示:http://jsfiddle.net/44T5D/。请帮我解决这个问题。谢谢你的帮助。

代码:

$(function() {

    $('.document').on('click', '.ajax', function(e) {
        e.preventDefault();

        // ajax request
        $.ajax({
            async: true,
            cache: false,
            type: 'post',
            url: '/echo/html/',
            data: {
                html: '<p>This is echoed the response in HTML format</p>',
                delay: 1
            },
            dataType: 'html',
            beforeSend: function() {
                console.log('Fired prior to the request');
            },
            success: function(data) {
                console.log('Fired when the request is successfull');
                $('.document').append(data);
                alert(data);
            },
            complete: function() {
                console.log('Fired when the request is complete');
            }
        });

    });

});

【问题讨论】:

  • 您是否有任何附加组件、扩展程序或其他影响 IE10 的东西?
  • 我看到你的 jsfiddle 使用 jQuery 1.7.2。你用 1.9.1 测试过吗?
  • 我不知道你在说什么附加组件或扩展。但是我昨天刚装了IE10,而且只有IE10,没有任何插件,扩展。你能告诉我更多关于这个错误的信息吗?
  • 我问这个问题是因为卸载一些插件解决了这个问题:stackoverflow.com/questions/13101729/…
  • 我无法重现此问题,因为我对 Windows 过敏。只是在这里抓住稻草。

标签: ajax post


【解决方案1】:

除非开发人员工具打开,否则 Internet Explorer 将在各种 console 函数上出错。由于您有一个 beforeSend 处理程序,因此它很可能会停止执行。

要查看是否确实是这个问题,请按 F12 打开开发者工具并刷新页面,看看它是否有效。

如果您想保留 console 函数,作为一种解决方法,请查看控制台 polyfill(此处列出了一些):Why do console.log() polyfills not use Function.apply()?

【讨论】:

  • 我已经修复了我的代码,删除了所有控制台功能,使用 jquery 1.9.1。它在 chrome 和 FF 上正常工作,但在 IE10 中,当我单击链接时,它只会显示带有空白文本的警报对话框。
  • 您在第 19 行有一个错误放置的逗号,这可能会使 IE 感到困惑。作为提示,使用 jsfiddle 中的 JSHint 按钮,它会指出类似这样的错误。
  • 嗨,我已经修复了我的代码:jsfiddle.net/qYXa3/1,当我使用 JSHint 时,它说:“干得好!您的 JavaScript 代码完全有效。”。但仍然没有任何变化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 2013-12-05
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
相关资源
最近更新 更多