我在 OVH VPS 上成功部署了我的第一个 Django / Mysql / Ubuntu /Apache - mod_wsgi 应用程序。
在主页上,我有一个 JQGRID 表来显示来自我的 MYSQL 数据库(也托管在 VPS 上)的一些信息。
我迷路了,因为只要我不启用 SSL 证书,一切都像魅力一样工作。
http://example.com正确显示所有内容(包括填充MYSQL的JQGRID)
https://example.com 显示 Django 应用程序,包含静态文件和图像,但没有出现 JQGRID 表
我制作了一个搜索引擎来过滤 JQGRID 上的结果和相同的行为:
http://example.com -> 过滤器正在工作并显示结果
https://example.com -> 我有错误 500。我在 django 上打开 DEBUG=TRUE 以获取一些详细信息,这就是我单击搜索按钮后得到的结果:
MultiValueDictKeyError at / ‘用户名’
请求方式:POST
请求网址:https://example.com/
Django 版本:4.1.6
异常类型:MultiValueDictKeyError
异常值:
'用户名'
异常位置:/var/www/example/venv/lib/python3.11/site-packages/django/utils/datastructures.py,第 86 行,在 getitem 中
期间引发: example_app.views.home
Python 可执行文件:/var/www/example/venv/bin/python
Python 版本:3.11.2
views.py错误
我不知道问题是来自 django 、 apache 还是 MYSQL ? 为什么只有 HTTPS 才会出现这种情况?
感谢您的帮助
查看网络浏览器的 JAVASCRIPT 控制台,我注意到此错误:
[blocked] The page at https://example.com/ was not allowed to run insecure content
from http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js.
所以我想要我的 django 主页并更新 http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js。 到 httpS://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js。
它解决了问题。