【问题标题】:Jquery AJAX not working in IE9Jquery AJAX 在 IE9 中不起作用
【发布时间】:2015-01-15 14:42:11
【问题描述】:

我正在编写一个 ajax Web 应用程序,但是无论出于何种原因,当我对 Internet Explorer 9 (IE9) 中的内部数据服务执行 GET 时,它都不起作用。同样的调用在 Chrome、Firefox 和 Safari 中运行良好。我正在使用 localhost Web 服务器 (wamp) 进行开发,并在与我尝试访问的数据服务相同的网络上进行开发。我正在使用 Jquery 1.8.1(我已经返回了几个版本,但仍然看到问题)。我的代码如下所示:

$(document).ready(function() {

                    var loginUrl = "http://omittedurl.com";
                    console.log(loginUrl);
                    $.ajax({
                        type : "GET",
                        url : loginUrl,
                        dataType : "json",
                        success : function(response) {
                            console.log("RESPONSE: " + response);

                        }
                    });
            });

正如我之前所说,这段代码在 Chrome 和 Firefox 上运行良好。在 IE9 中,当我查看 Web 调试器时,日志中没有错误。就像 IE9 完全忽略了 .ajax 块。我尝试过的事情:

  • 关闭 Ajax 缓存
  • URL 编码了我的请求 URL
  • 回到三个旧版本的 Jquery
  • 从 IE9 手动 ping 我的 URL(能够得到响应)

有什么想法吗??

【问题讨论】:

  • 这是跨域请求吗?
  • 在使用最新的 jQuery 版本 1.8.2 时仍然会这样做吗?
  • 在 IE 中按 F12,然后转到“网络”选项卡。加载页面并查看请求在做什么。
  • @GungFoo:我认为跨域应该会在所有浏览器中引起问题
  • 您是否在打开控制台的情况下对其进行测试? IE 和 console.log 无法相处,除非控制台打开,因此要么注释掉 console.log 行,要么确保开发工具保持打开状态。

标签: jquery ajax


【解决方案1】:

看起来是个问题

console.log()

当开发者工具未打开时,IE 没有控制台对象。尝试通过注释您的 console.log 来运行您的代码,然后重试。

$(document).ready(function () {

    var loginUrl = "http://omittedurl.com";
    //console.log(loginUrl);
    $.ajax({
        type: "GET",
        url: loginUrl,
        dataType: "json",
        success: function (response) {
           // console.log("RESPONSE: " + response);
           alert("RESPONSE: " + response)
        }
    });
});

如果你想使用控制台,如果开发者工具没有打开,你需要先定义它..

if (typeof console === "undefined" || typeof console.log === "undefined") {
     console = {};

【讨论】:

  • 我完全没有看到console.log,这会导致IE出现问题。好收获!
  • @moonwave99,是的,我以前用过几个包装器。不幸的是,在我目前的演出中,我根本没有做太多的 javascript,所以随机的console.logs 并没有对我造成太大的伤害。我正在为该链接添加书签。
  • 哇!谢谢您的帮助!我不敢相信微软放过这样的事情!
  • 我在一个 ajax 调用之前有一个 console.log('msg'),我花了将近 8 个小时,认为这是我的 ajax 代码的问题。用IE的在线虚拟机调试了很多。终于找到了这个答案!谢谢!!
猜你喜欢
  • 2013-06-22
  • 2015-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
相关资源
最近更新 更多