django跨域使用
pip install django-cors-headers
然后在settings文件中加上参数设置
# app配置
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'corsheaders', ]
# 中间件配置:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# 然后在setting文件的空白处加上如下这些参数配置:
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = (
'*'
)
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
'VIEW',
)
CORS_ALLOW_HEADERS = (
'XMLHttpRequest',
'X_FILENAME',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'Pragma',
)
运行Django程序的时候如果报错,请检查pip的版本问题。
我是用的Django==2.1.7,python==3.6,然后pip3 install django-cors-headers
运行程序报错,显示:
"No module named corsheaders"
很显然我确实下载了模块,但是程序无法识别它,找了很多博客,后来在stark overflow上看到了解决方案,我用pip install django-cors-headers,然后命令行报错,让我把“--user”的potion加上,于是我用的pip install --user django-cors-headers
之后就可以用了,按照如上的参数在setting文件中配置好即可。
一开始很费解,在网上找到大量的博客都是一句话解决问题pip install即可,没有过多赘述,我明明都是已经pip过了,配置也是copy的,但是不起作用,后来太晚了就睡觉了,然后第二天起来换了一个角度,把上面这条简单的报错信息贴上research一下,看看有没有人遇到过类似的问题,然后才找到原因,是pip版本的问题,很容易就解决了。
遇到问题不可钻牛角尖,一定要多转换角度去思考,会有解决方案的。