Python-Django-CORS跨域請求
阿新 • • 發佈:2019-02-11
跨域CORS
我們為前端和後端分別設定了兩個不同的域名
位置域名
前端www.meiduo.site
後端api.meiduo.site
現在,前端與後端分處不同的域名,我們需要為後端新增跨域訪問的支援。
我們使用CORS來解決後端對跨域訪問的支援。
使用django-cors-headers擴充套件
參考文件https://github.com/ottoyiu/django-cors-headers/
安裝
pip install django-cors-headers
新增應用
INSTALLED_APPS = (
...
'corsheaders',
...
)
中間層設定
'corsheaders.middleware.CorsMiddleware',
...
]
新增白名單
# CORS
CORS_ORIGIN_WHITELIST = (
'127.0.0.1:8080',
'localhost:8080',
'www.meiduo.site:8080',
'api.meiduo.site:8000'
)
CORS_ALLOW_CREDENTIALS = True # 允許攜帶cookie
CORS_ALLOW_CREDENTIALS 指明在跨域訪問中,後端是否支援對cookie的操作。
我們為前端和後端分別設定了兩個不同的域名
位置域名
前端www.meiduo.site
後端api.meiduo.site
現在,前端與後端分處不同的域名,我們需要為後端新增跨域訪問的支援。
我們使用CORS來解決後端對跨域訪問的支援。
使用django-cors-headers擴充套件
參考文件https://github.com/ottoyiu/django-cors-headers/
安裝
pip install django-cors-headers
新增應用
INSTALLED_APPS = (
...
'corsheaders',
...
)
中間層設定
MIDDLEWARE = [
// 必須在最前面 只有允許跨域請求,後面的中介軟體才能被執行
...
]
新增白名單
# CORS
CORS_ORIGIN_WHITELIST = (
'127.0.0.1:8080',
'localhost:8080',
'www.meiduo.site:8080',
'api.meiduo.site:8000'
)
CORS_ALLOW_CREDENTIALS = True # 允許攜帶cookie
凡是出現在白名單中的域名,都可以訪問後端介面
ALLOWED_HOSTS = ['127.0.0.1', 'localhost', 'api.meiduo.site', 'www.meiduo.site']