Django4 在本地登录admin完全正常,在服务器上就不行了,报错:
禁止访问 (403)
CSRF验证失败. 请求被中断. Help
Reason given for failure:
Origin checking failed - https://applet.pyxis-lab.com.cn does not match any trusted origins.
In general, this can occur when there is a genuine Cross Site Request
Forgery, or when Django’s CSRF mechanism has not been used correctly.
For POST forms, you need to ensure:Your browser is accepting cookies. The view function passes a request to the template’s render method. In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL. If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as
well as those that accept the POST data.
The form has a valid CSRF token. After logging in in another browser tab or hitting the back button after a login, you may need to
reload the page with the form, because the token is rotated after a
login.You’re seeing the help section of this page because you have DEBUG =
True in your Django settings file. Change that to False, and only the
initial error message will be displayed.You can customize this page using the CSRF_FAILURE_VIEW setting.
解决方案:
在setting.py中添加如下代码:
#添加下列内容
CORS_ALLOWED_ORIGINS = [ "https://caisunzi.com", "https://www.caisunzi.com",]
# 添加下列内容
CSRF_TRUSTED_ORIGINS = [ "https://caisunzi.com", "https://www.caisunzi.com",]