jQuery ajax在IE上的生产中不起作用

时间:2013-02-26 15:05:13

标签: javascript internet-explorer jquery

我正在尝试使用jQuery的ajax函数进行服务调用。我已经在IE和Chrome的本地环境中对它进行了测试,它运行正常。但是,在将我们的网站部署到生产环境后,我只能通过Chrome获得服务电话。单步执行检查器中的代码,我可以看到它进入IE中的ajax函数但是从不发出请求。我使用过fiddler,可以在使用Chrome时看到通话,但不能使用IE。

var customers;

function AutoComplete(TheId) {

    if (!customers) {
        $.ajax({
            type: "GET",
            url: "api/customerapi",
            dataType: "json",
            async: false,
            success: function (data) {
                customers = data;
            }
        });
     }

.... further code ....
}

任何想法可能会出错?

1 个答案:

答案 0 :(得分:1)

您的代码中没有任何漏洞。您应该提供更多详细信息以及您所提供的小提琴的链接。

要考虑的一些一般事项:

您是使用http://进行https://请求,反之亦然?这在部署到生产(即https)后使用IE时遇到了麻烦。它会抱怨安全被破坏,甚至不会提出要求。

除非您有非常良好的理由,否则请勿使用async: false。它会冻结用户的浏览器,直到请求完成。在IE上它特别糟糕,因为它冻结了整个浏览器,而不仅仅是页面。你应该使用同步请求几乎没有理由,因为jQuery使得使用异步变得如此简单。您可以执行与同步相同的操作,而不会冻结浏览器。收集所需的所有数据,然后从那里开始。如果你的问题是如何使用异步请求,我建议重写这个问题。

这些是非常一般性的建议,如果你提出更具体的问题,你可能会得到同样具体的答案。