Django----CORS跨域资源共享

Django----CORS跨域资源共享

  • 安装 pip install django-cors-headers

  • 配置

    1,INSTALLED_APPS 中添加 corsheaders
    2,MIDDLEWARE 中添加 corsheaders.middleware.CorsMiddleware
    位置尽量靠前,官方建议 ‘django.middleware.common.CommonMiddleware’ 上方
    3,CORS_ORIGIN_ALLOW_ALL= True  布尔值  如果为True 白名单不启用
    4,CORS_ORIGIN_WHITELIST =[  
    "https://example.com"
    ]
    5, CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    )
    6, CORS_ALLOW_HEADERS = (
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
    )
    7, CORS_PREFLIGHT_MAX_AGE  默认 86400s
    8, CORS_EXPOSE_HEADERS  []
    9, CORS_ALLOW_CREDENTIALS  布尔值, 默认False
    

    默认只需配置12356

  • 前后端分离时,使用跨域资源共享可以解决跨域问题

    • 在需要验证权限,比如需要验证token时,前端ajax可以:
    if (no_empty) {
            $.ajax({
                url: baseUrl + "/xxxx",
                type: "post",
                data: JSON.stringify(data),
                dataType: 'json',
                //发送ajax前先发送预检请求,将token发去后端校验
                beforeSend: function (request) {
                    request.setRequestHeader('authorization', window.localStorage.getItem('token'))
                },
                success: function (data) {
                    
                }
            })
        }
    
    • 后端接收
    token = request.META.get('HTTP_AUTHORIZATION')
    #拿到后进行验证token
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值