前段发送请求报错 No 'Access-Control-Allow-Origin' header is present on the requested resource

在使用Django构建API并尝试通过Ajax调用时遇到'Access-Control-Allow-Origin'错误。该问题由CORS引起。通过安装和配置django-cors-headers middleware,可以在settings.py中轻松解决跨域限制,实现CORS允许所有源或自定义白名单,从而顺利进行前端请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Django在服务器端写了一个API,返回一个JSON数据。使用Ajax调用该API:

但是,Chrome浏览器提示错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

这是由于CORS导致的。

 

 

安装django-cors-headers这里还有一各发现!在Django中,有人开发了CORS-header的middleware,只在settings.py中做一些简单的配置即可,见:https://github.com/ottoyiu/dj...,开启CORS,没有跨域烦恼,真爽!~

 

首先安装 pip install django-cors-headers

然后在settings.py里配置一番就可以 INSTALLED_APPS = [  
     ...  
     'corsheaders', 
     ...  ]    
 MIDDLEWARE_CLASSES = ( 
     ...  
     #尽可能靠前,必须在CsrfViewMiddleware、CommonMiddleware之前。
     #我们直接放在第一个位置就好了
     'django.middleware.csrf.CsrfViewMiddleware',
     'corsheaders.middleware.CorsMiddleware',  
     'django.middleware.common.CommonMiddleware', 
     ... 
 ) 
添加参数为true
CORS_ORIGIN_ALLOW_ALL = True
#下面这些可以不用设置
#跨域增加忽略 
CORS_ALLOW_CREDENTIALS = True
#设置白名单
CORS_ORIGIN_WHITELIST = (  '*')   
CORS_ALLOW_METHODS = (  'DELETE',  'GET',  'OPTIONS',  'PATCH',  'POST',  'PUT',  'VIEW', )   
CORS_ALLOW_HEADERS = (  
'XMLHttpRequest',  
'X_FILENAME',  
'accept-encoding', 
'authorization',  
'content-type',  
'dnt',
'origin',  
'user-agent',  
'x-csrftoken',  
'x-requested-with',  
'Pragma', 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值