跨域問題:瀏覽器同源策略;前後端在不同域會導致跨域問題;不同源之間的網站通信就是跨域
解決方案:CORS擴展
1. 安裝django-cors-headers
pip install django-cors-headers
2. 配置settings.py文件
# 添加應用
INSTALLED_APPS = [
...
'corsheaders',
...
]
# 中間層設置
MIDDLEWARE_CLASSES = (
'corsheaders.middleware.CorsMiddleware', # 注意順序
'django.middleware.common.CommonMiddleware',
...
)
# 跨域增加忽略
CORS_ALLOW_CREDENTIALS = True # 允許攜帶cookie
CORS_ORIGIN_ALLOW_ALL = True # 允許所有主機跨域
# 添加白名單
CORS_ORIGIN_WHITELIST = (
'127.0.0.1:8080',
...
) # 單個配置
CORS_ORIGIN_REGEX_WHITELIST =(r'^(https?://)?(\w+\.)?jim\.com $',) # 正則配置
# 請求方法配置
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',
)
注意:中間件CorsMiddleware必須放在django-common中間件的前一個
OK.