Django 跨域设置

背景

前后端分离的页面结构中,不设置准许跨域的话,前端是无法进行跨域请求的。

局部跨域设置

vim views.py

# 局部csrs
from django.views.decorators.csrf import csrf_exempt


@csrf_exempt
def list_all_2(request):
    if request.method == "POST":
        req = simplejson.loads(request.body)
        user_id = req["params"]['id']
        # print(user_id)
        Choice.objects.get(id=user_id).delete()
        return HttpResponse("删除数据成功.....")
    # 获取所有的数据对象,必须要接value,不然无法返回json数据
    queryset = Choice.objects.all().values('id','choice_text','votes')
    # 将数据序列化成json格式,date类型的数据不能直接系列化 ensure_ascii=False 修改乱码的现象
    ret = json.dumps(list(queryset),ensure_ascii=False)
    return HttpResponse(ret)

## 用户登录,接受前端传过来的所有参数
@csrf_exempt
def login(request):
    res_data = {"status":"sucess"}
    obj = HttpResponse(json.dumps(res_data))
    obj['Access-Control-Allow-Origin']='*'
    xx= str(request.body,encoding="utf-8")
    print(xx)
    return obj

全局跨域设置

# 安装依赖
pip3 install django-cors-headers

修改settings.py

INSTALLED_APPS = [
    ......
    'corsheaders',   # 新添加
    ......
]

MIDDLEWARE = [
    ......
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ......
]


CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叱咤少帅(少帅)

如果文章对你有帮助就打赏下吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值