【问题标题】:Django debug console shows double GET for a single page requestDjango 调试控制台显示单个页面请求的双重 GET
【发布时间】:2011-03-17 04:58:52
【问题描述】:

我正在运行开发人员的 Django 服务器,同时编写一个简单的视图,似乎每当我请求一个页面时,控制台都会显示同一个 URL 有 2 个 GET。什么会导致这种情况发生?我没有使用任何重定向,所以我看不到第二个请求将如何发出?

编辑:它似乎是由模板引起的。更改为模板的空白 html 文件解决了该问题。问题是为什么?我有多个 {% if %} {% endif %} 部分,没有其他部分。这可能是个问题吗?

【问题讨论】:

  • 你解决了吗?我也有同样的问题。
  • 你有没有带有背景图片的内联样式:url();在?这就是我造成这种情况的原因。

标签: django django-views


【解决方案1】:

它也可能是 Firefox 遵循 WC3 指令,如果某些标签为空或损坏,它应该双重加载,例如,没有 src="" 等。话虽如此,我保存了呈现的 HTML收据并将其移动到一个静态文件中,我在其中添加了与实际结帐相同的标题和所有访问的小型数据库日志。

我只是偶然发现了这个问题并修复了它,删除了我的 img wit src=""

【讨论】:

  • 实际上,我使用 src="#" 的 img 标签生成了我的 html。当我删除哈希时,它可以工作。
【解决方案2】:

请确认,如果 Django 在将斜杠附加到您的 url 后重定向。 settings.py 中的属性 APPEND_SLASH 控制着它。

【讨论】:

  • 简单地说,我正在测试的网址末尾已经有一个斜线,所以这不是问题,对吧?如果我尝试不使用斜线,那么它会显示 3 个 GET,一个是重定向,另外两个是重复的。
【解决方案3】:

第二个请求可能是由错误配置的资产链接引起的 - 脚本、样式或 img 标记为空或省略了初始 /,因此正在重新请求页面。

【讨论】:

    【解决方案4】:

    它可能是您的快捷方式/网站图标

    您的页面模板中有链接 rel="shortcut icon" 吗?将其注释掉,看看它是否删除了第二个请求

    【讨论】:

      【解决方案5】:

      就我而言:我在 2 个文件中有相同的 javascript 代码:一个在基本模板中,另一个在另一个模板中。当我使用 ajax 不重新加载所有页面时,我收到了 2x、4x 和 8x 的调用,... 解决方案是仅在 mybase.html 中使用 javascript 代码 此后我的js代码:

      <script type="text/javascript">
      // Code jQuery Ici
      $(document).ready(function(){
      
      // GET
      $(".ajax_onglet_get").click(function(e){
          var lien = $(this).attr('href');
          $('#zone_travail').fadeOut('fast', function(){
              $('#zone_travail').load(lien, function() {
                  $('#zone_travail').fadeIn('fast');
              });
          });
          e.preventDefault()
      });
      
      });
      

      【讨论】:

        猜你喜欢
        • 2017-12-19
        • 2018-07-28
        • 2018-07-09
        • 1970-01-01
        • 2020-11-22
        • 1970-01-01
        • 1970-01-01
        • 2017-01-13
        • 2021-06-11
        相关资源
        最近更新 更多