0

我正在尝试使用 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 ....
}

任何想法这里可能出了什么问题?

4

1 回答 1

1

您的代码没有太多漏洞。您应该提供更多详细信息以及指向您制作的小提琴的链接。

需要考虑的一些一般事项:

您是否使用 http:// 发出 https:// 请求,反之亦然?在部署到生产环境(即 https)后使用 IE 时,这给我带来了麻烦。它会抱怨安全遭到破坏,甚至不会提出请求。

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

These are some very general suggestions, if you make your question more specific, you'll probably get an equally specific answer.

于 2013-02-26T15:20:55.413 回答