【问题标题】:Ajax data crossover between browsers?浏览器之间的Ajax数据交叉?
【发布时间】:2015-05-16 02:06:25
【问题描述】:

我们的一位测试人员同时打开了 Chrome 和 IE,在应用程序的同一页面上进行并排比较。 (这是一个 ASP.NET MVC 项目。)她发现,如果她在 Chrome 中启动一个 ajax 调用,然后切换到 IE 并执行相同的操作,她期望在 Chrome 中显示的结果实际上会显示在 IE 中,而没有任何反应在铬。就好像IE中的函数在截取结果一样。

我什至不知道这是可能的。有什么建议吗?

这里是 ajax 调用。当这首先在 Chrome 中启动,然后在 IE 中启动时,我期望在 Chrome 中的结果实际上会加载到 IE 中。

        $.ajax({
        url: '/Product/Load/',
        type: 'POST',
        data: {
            catalogid: catalogid,
            styleid: styleid,
            shapeid: shapeid,
            editmode: editmode
        },
        cache: false,
        success: function (result) {
            if (result.Error == null) {
                $('#questionPanel').html(result.ViewString);
                $('#questionPanel').show();
            } else {
                $("#loadingIndicator").hide();
                alert("An error occurred loading this product.");
            }
        },
        error: function () {
            alert("An error occurred loading this product");
        }
    });

【问题讨论】:

  • 据我所知,IE 应该从 Chrome 中检索结果(如果正确结束)并且它是自己的结果。但是,如果两个浏览器同时工作,处理相同的数据,这可能会很危险,因为您不知道哪个请求先结束。

标签: jquery ajax asp.net-mvc google-chrome internet-explorer


【解决方案1】:

对我来说听起来像是缓存...尝试 $.ajax() with cache: false

http://api.jquery.com/jquery.ajax/

【讨论】:

  • 我们确实在所有 ajax 调用上设置了 cache: false ,因为我之前在 IE 中遇到过这个问题。但是,即使它正在缓存,那不是浏览器缓存吗?我很困惑它如何在浏览器之间“交叉”。
  • 交叉听起来很奇怪,这就是为什么我认为它是缓存和误解 :) 我认为你必须给我们 .NET 代码以便我们帮助你 - 或者至少描述它是什么确实。
  • 我添加了 ajax 调用。 .NET 代码只是加载一个带有一系列下拉菜单的视图。所以基本上我希望在 Chrome 中加载的视图是在 IE 中加载。
  • 嗯,我只是不知道——抱歉。 IE 和 Chrome 有不同的会话,所以这听起来有点不可能 :) 如果你在 .NET 端没有做任何神奇的事情,例如将输出缓存到用户 IP 左右的键。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 2015-10-05
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 2012-06-23
相关资源
最近更新 更多