如何修复Swagger中的混合内容错误?

时间:2019-07-08 13:31:15

标签: django swagger gunicorn

我正在Gunicorn上运行Django RF后端应用程序。 尝试从Swagger获取数据时,出现“ TypeError:无法获取” 在控制台中,报告此错误:

混合内容:“ https://****.com/swagger/”上的页面已通过HTTPS加载,但请求了不安全的资源“ http://****.com/v2/products/ '。该请求已被阻止;内容必须通过HTTPS提供。

我尝试了发现的所有内容,并想到包括: 添加

secure_scheme_headers = {
    'X-FORWARDED-PROTOCOL': 'ssl',
    'X-FORWARDED-PROTO': 'https',
    'X-FORWARDED-SSL': 'on'}

到独角兽

USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

到Django设置。

但是没有帮助。

针对Django的摇摇欲坠:drf-yasg == 1.12.1

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。在Django设置中添加

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True

# Security Headers
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SECURE_HSTS_SECONDS = 3600