Django跨域问题

Django跨域问题

什么是跨域

'''
通常情况下,A网页访问B服务器资源时,不满足以下三个条件其一就是跨域访问
1. 协议不同
2. 端口不同
3. 主机不同
'''

Django解决跨域

'''
# 注册app
INSTALLED_APPS = [
    ...
    'corsheaders'
]

# 添加中间件
MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware'
]

# 允许跨域源,True时表示允许所有跨域源,一般都设置False,通过白名单允许部分跨域
CORS_ORIGIN_ALLOW_ALL = False

# 白名单,配置指定跨域域名
CORS_ORIGIN_WHITELIST = [
    'http://www.luffy.cn:8080'
]

# 允许ajax请求携带cookie
CORS_ALLOW_CREDENTIALS = True


# 注:前台请求头携带参数,中间件拒绝Access-Control-Allow-Headers错误,中间件要设置 default_headers
from corsheaders import defaults
在 default_headers 中添加 '前端ajax请求头里面的字段名'
'''
原文地址:https://www.cnblogs.com/zhoajiahao/p/11448804.html