Django重定向被浏览器中断了吗?

时间:2019-03-25 18:56:27

标签: django google-chrome firefox redirect browser

我有一个非常简单的视图,用于跟踪用户的点击并将其重定向到外部页面:

def redirect_view(request, uu_id):
    my_model = MyModel.objects.get(uuid = uu_id)
    my_model.clicked_link = True
    my_model.save()
    return redirect('https://www.some-other-site.com')

对于与该视图进行交互的大约一半用户,它可以完美运行!我们的日志显示302响应,然后用户没有其他响应。

对于我们另一半的用户,他们奇怪地重定向到了我们在http中的网站的基本URL,然后因为我们拥有SECURE_SSL_REDIRECT = True,他们被重定向到了https,最后因为他们没有通过身份验证,因此被重定向到身份验证。

我们针对此类用户的日志如下:

Feb 21 10:04:51 myapp heroku/router:  at=info method=GET path="/redirect-url" host=mysite.com request_id=123 fwd="..." dyno=web.1 connect=0ms service=25ms status=302 bytes=268 protocol=https 
Feb 21 10:04:51 myapp heroku/router:  at=info method=GET path="/" host=mysite.com request_id=456 fwd="..." dyno=web.1 connect=1ms service=3ms status=301 bytes=262 protocol=http 
Feb 21 10:04:52 myapp heroku/router:  at=info method=GET path="/" host=mysite.com request_id=789 fwd="..." dyno=web.1 connect=0ms service=2ms status=302 bytes=360 protocol=https 

我们的代码中没有任何内容建议重定向到基本URL,因此我唯一的想法是它们具有某种浏览器设置,可以限制外部重定向。

这是否可以由Django引起? 如果这不是Django问题,是什么原因造成的?什么是一个好的解决方法?

0 个答案:

没有答案