python django 跨域解決

跨域問題:瀏覽器同源策略;前後端在不同域會導致跨域問題;不同源之間的網站通信就是跨域

解決方案: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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章