背景
由于浏览器的同源(协议、域名、端口号都相同)策略,不同域名之间是不能相互访问传递数据,要使两个域名间传递数据,后端要添加跨域访问支持。
跨域
后端可以使用django-cors-headers
来实现跨域的支持,参考文档github.com/ottoyiu/dja…
安装
pip install django-cors-headers
注册
在django
项目的配置文件中添加内容如下:
INSTALLED_APPS = [ ... 'corsheaders', ...]
中间件设置
中间件设置项要设置在第一位,替换掉django原有默认方案。
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
...
]
白名单设置
在django
项目的配置文件中配置CORS_ORIGIN_WHITELIST
将需要支持的域名添加进去。并将CORS_ALLOW_CREDENTIALS
设置为True,表示允许设置cookie
.并将ALLOWED_HOSTS
将允许的域名主机添加进去。
# CORS
CORS_ORIGIN_WHITELIST = (
'127.0.0.1:8080',
'localhost:8080',
'www.example.com:8081',
)
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie
ALLOWED_HOSTS = [
'www.example.com',
'127.0.0.1'
]