我正在尝试使用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 ....
}
任何想法可能会出错?
答案 0 :(得分:1)
您的代码中没有任何漏洞。您应该提供更多详细信息以及您所提供的小提琴的链接。
要考虑的一些一般事项:
您是使用http://进行https://请求,反之亦然?这在部署到生产(即https)后使用IE时遇到了麻烦。它会抱怨安全被破坏,甚至不会提出要求。
除非您有非常良好的理由,否则请勿使用async: false
。它会冻结用户的浏览器,直到请求完成。在IE上它特别糟糕,因为它冻结了整个浏览器,而不仅仅是页面。你应该使用同步请求几乎没有理由,因为jQuery使得使用异步变得如此简单。您可以执行与同步相同的操作,而不会冻结浏览器。收集所需的所有数据,然后从那里开始。如果你的问题是如何使用异步请求,我建议重写这个问题。
这些是非常一般性的建议,如果你提出更具体的问题,你可能会得到同样具体的答案。