位置 域名
前端服务 www.baidu.com:8080
后端服务 www.baidu.com:8000

现在,前端与后端分处不同的域名,这就涉及到跨域访问数据的问题: 因为浏览器的同源策略, 默认是不支持两个不同域间相互访问数据 ,而我们需要在两个域名间相互传递数据,这时我们就要为后端添加跨域访问的支持。

对此,我们使用CORS ( django-cors-headers ) 扩展来解决后端对跨域访问的支持。

django-cors-headers 用于处理跨域请求,一个为响应添加跨源资源共享(CORS)头的Django应用,这允许从其他源向Django应用程序发出浏览器内请求

第一步:安装 django-cors-headers

pip install django-cors-headers

第二步:在项目根目录的setting.py文件中引入应用

INSTALLED_APPS = (
    'corsheaders',

中间层设置

第三步:在项目根目录的setting.py文件中配置中间层

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',

添加白名单

第四步:在项目根目录的setting.py文件中使用添加白名单

白名单:凡是出现在白名单中的域名,都可以访问后端接口

# CORS
CORS_ORIGIN_WHITELIST = (
    'http://127.0.0.1:8080', # 为本地页面 8080端口
    'http://www.baidu.com:8080', # 为前端页面 8080 端口
CORS_ALLOW_CREDENTIALS = True  # 允许携带cookie