django - 如何修复 Swagger 中的混合内容错误?
问题描述
我在 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
解决方案
我找到了解决方案。在 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
推荐阅读
- git - Windows 10 上 bitbucket 服务器的多个 ssh 密钥
- swift - 可重复使用的视图控制器,在情节提要中具有视图(一个场景中的多个)
- powershell - VSCode 终端中的“<”运算符是否有解决方法?
- php - npm run dev 不会结束
- linux - 一个 bash 脚本,用于解压 linux 子目录中的所有文件
- flutter - Flutter:我是否必须为我的应用程序的每个部分创建一个块?它的最佳做法是什么?
- kubernetes - 如何自动删除失败的 Kubernetes Ceph 节点?
- python-3.x - Python:xarray 和 h5py 不兼容
- reactjs - 通过传递的引用设置反应原生组件道具
- python - 如何将一个 DataFrame 拆分为多个行数更少的 DataFrame?