【发布时间】:2016-05-14 01:38:10
【问题描述】:
我正在 Cloud9 中运行我的 Django 应用程序,以使用通常的 ./manage.py 运行服务器进行开发。但对于外界来说,该应用程序可以通过 https:// URL 访问。
问题是,当我使用 URL 反向功能时,返回的 URL 以 http:// 开头(至少在某些时候)。当我尝试重定向到其中一个 URL 时,我在控制台中收到类似这样的错误:
Mixed Content: The page at 'https://apps.facebook.com/xxxx/'
was loaded over HTTPS, but requested an insecure form action
'http://xxxx.c9users.io/facebook_app/gift_shop/'.
This request has been blocked; the content must be served over HTTPS.
我的问题:有没有办法强制反向生成 HTTPS URL 而不是 HTTP?
这是一段 sn-p 代码,它存在从 HTTPS URL 重定向到 HTTP 的问题:
class IndexRedirectView(RedirectView, CSRFExemptMixin):
permanent = False
def get_redirect_url(self, *args, **kwargs):
if self.request.user.visit_count >= 5:
return reverse('gift-shop')
if len(BaseGiftableInstance.objects.filter(giving_user=self.request.user)) > 0:
# has won something
return reverse('gift-shop')
return reverse('spinner')
【问题讨论】:
-
您不得使用 RUNSERVER 运行您的生产站点。
-
@DanielRoseman 这不是我的生产站点。
-
虽然它是公开的。不要这样做。配置合适的网络服务器。
-
我仍然需要调试功能来简化开发。而且我使用的是 Cloud9,因此 Facebook 可以访问该应用程序。
-
@DanielRoseman Cloud9 是一个基于云的 IDE。放松一下。
标签: python django python-2.7 cloud9-ide django-1.6