如果启用了chrome数据保护程序,则不会显示Django消息

时间:2017-09-26 09:35:31

标签: python django django-messages chrome-datasaver android-datasaver

Google数据保护程序压缩数据以减少流量使用。默认情况下,它在移动(android)chrome中启用,可能在桌面chrome中用作插件。

当GDS开启时,不会显示django消息。

我创建了一个示例应用程序(Python 3.5,Django 1.10.8,uwsgi + nginx)来捕获这个bug。这个应用程序在主页面上有一个“提交”按钮,用于触发查看方法:

def welcome_view(request):
    if request.method == 'POST':
        messages.add_message(request, messages.INFO, "succeed")
        return HttpResponseRedirect('/')
    else:
        return render(request, 'index.html')

完整的应用来源为here

在fqtest.ru上提供已部署的应用程序

重现的步骤:

  1. 部署到某个服务器(或使用我的fqtest.ru)。不要忘记在settigs.py中指定允许的主机。
  2. 如果您拥有Chrome数据保护程序插件或使用启动隐身模式,请关闭它。
  3. 打开主页,然后单击Go bitton。结果:消息显示为预期
  4. 启用数据保护程序插件或安装它(或从Android chrome打开网站)
  5. 打开主页,然后单击Go bitton。结果:消息未显示。
  6. 问题:

    1. 这种行为的原因是什么?
    2. 如何修复/解决?
    3. 希望得到帮助。谢谢!

0 个答案:

没有答案