在微信小程序端对Django后台进行POST请求,产生Forbidden (403) CSRF verification failed. Request aborted.错误,403错误主要是因为Django的后台,form表单提交时,需要csrf校验,而小程序没有对应的csrf校验。
我最后的解决方法是需要
1.pip install django-cors-headers
django-cors-headers处理跨域请求,为响应添加跨源资源共享(CORS)头的Django应用。允许从其他源向Django应用程序发出浏览器内请求。
2.把setting.py中的’django.middleware.csrf.CsrfViewMiddleware’,注释掉
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
3.继续配置settings.py
INSTALLED_APPS = [
...
'corsheaders',
...
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware', # 放最前面
...
]