javascript – 浏览器有时会显示JSON文本而不是所需的页面

前端之家收集整理的这篇文章主要介绍了javascript – 浏览器有时会显示JSON文本而不是所需的页面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在Rails应用程序中遇到了一个间歇性问题,而且我无法弄清楚发生了什么.当用户登录时,他们会看到一个仪表板,其中包含一些JavaScript代码,用于对操作执行AJAX调用.有时,当用户登录时,他们不会看到仪表板,而是从操作而不是仪表板(在Chrome中)看到JSON响应文本,或者他们下载.json文件(Firefox).它是间歇性的,通常不会发生,但它确实发生时真的很烦人.

这是一些代码的愚蠢版本:

JS在模板头中运行:

$(function () {
    var remoteLink = $('#remoteLink');
    remoteLink.live("ajax:complete",function () {
        setTimeout(function () {
           loadCount();
        },30000);
    });    

    loadCount();

    function loadCount() {
      remoteLink.click();
    }
});

以及模板中的链接

<%= link_to 'get count (hidden)',{:controller => 'something',:action => 'count'},:id => 'remoteLink',:class => 'hidden',:remote => true,'data-type' => 'json' %>

和控制器动作:

def count
    render :json => get_counts_function_returning_a_hash
end

我的预感是,它是一种竞争条件 – 可能与使用setTimeout有关? – 但我无法证实这种预感.谁能告诉我这里会发生什么?我也在其他网站上看到过这种情况 – 也是间歇性的,一般不会发生,但是当它发生时会很烦人.

最佳答案
您是否有任何使用store_location或类似功能的身份验证代码用户登录后将用户重定向到特定页面

我曾经遇到类似的问题,其中AJAX回调导致store_location存储JSON URL,并且用户重定向到JSON响应而不是他们的仪表板.这很难追踪,因为在错误显现之前,用户必须在页面闲置一段时间.

在任何情况下,我怀疑它是这样的,而不是Rails的问题.

原文链接:https://www.f2er.com/jquery/427943.html

猜你在找的jQuery相关文章