安裝
pip install django-cors-headers
注冊應用
INSTALLED_APPS = ( ... 'corsheaders', ... )
中間層設置
MIDDLEWARE = [ ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', ... ]
添加白名單
# CORS 設置跨域域名 CORS_ORIGIN_WHITELIST = ( '127.0.0.1:8080', 'localhost:8080', 'www.xxxx.com:8080', 'api.xxxx.com:8000' ) CORS_ALLOW_CREDENTIALS = True # 允許攜帶cookie ALLOWED_HOSTS = ['www.xxxx.com:8080','api.xxxx.com:8000','127.0.0.1'] # 前端需要攜帶cookies訪問后端時,需要設置 withCredentials: true
設置允許訪問的方法( 已測,沒用 )
CORS_ALLOW_METHODS = ( 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS' )
設置允許的header:(未測)
CORS_ALLOW_HEADERS = ( 'x-requested-with', 'content-type', 'accept', 'origin', 'authorization', 'x-csrftoken' )
添加中間件
MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', #最好添加至第一行 ]
配置白名單
#單個配置 CORS_ORIGIN_WHITELIST =( ' 域名', ) #正則配置: CORS_ORIGIN_REGEX_WHITELIST =(r'^(https?://)?(\w+\.)?jim\.com $',)
或者直接允許所有主機跨域
CORS_ORIGIN_ALLOW_ALL = True 默認為False
一般情況下,我們配置這些就足夠,當然最為一個出名的擴展,肯定做的很完美,更多的配置,請訪問: https://github.com/ottoyiu/django-cors-headers/