django中配置允许跨域请求

对于django

安装django-cors-headers

pip install django-cors-headers

配置settings.py文件

1.在INSTALLED_APPS里添加“corsheaders”

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'corsheaders',#新加
]

2.在MIDDLEWARE添加

‘corsheaders.middleware.CorsMiddleware’, ‘django.middleware.common.CommonMiddleware’

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
     'corsheaders.middleware.CorsMiddleware',#新加
     'django.middleware.common.CommonMiddleware',#新加
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',

]

3.在sitting.py底部添加

#跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = ()
 
CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)
 
CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)

 

### 配置Django以处理CORS资源共享 #### 安装`django-cors-headers` 对于希望在Django项目中启用资源共享(CORS)的支持,推荐安装第三方库 `django-cors-headers` 来简化这一过程[^1]。此库提供了必要的工具来管理HTTP响应头,进而控制哪些源被允许访问资源。 可以通过pip命令轻松安装该库: ```bash pip install django-cors-headers ``` #### 更新项目的设置文件 完成上述包的安装之后,在Django项目的settings.py文件内做出相应调整。首先需向INSTALLED_APPS列表添加`corsheaders`模块: ```python INSTALLED_APPS = [ ... 'corsheaders', ... ] ``` 接着,确保将`CorsMiddleware`加入到MIDDLEWARE配置项之中,并放置于尽可能高的位置以便尽早拦截请求并附加相应的头部信息[^4]: ```python MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', # 放在此处 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', ... ] ``` #### 设置允许的来源 为了让特定站点能够成功发起请求,还需指定那些可信任的源地址。这可通过修改`CORS_ALLOWED_ORIGINS`参数实现;如果要开放给所有外部网站,则应设为通配符形式(`'*'`)。不过出于安全考虑,建议仅限于实际需要通信的服务端点[^3]。 ```python # 只允许某些具体URL访问API接口 CORS_ALLOWED_ORIGINS = [ "https://example.com", ] # 或者完全放开限制(不推荐用于生产环境) # CORS_ALLOW_ALL_ORIGINS = True ``` 通过以上几步操作即可有效解决Django应用中存在的CORS问题,使得前端页面可以从不同的主机名或协议下正常调用后端提供的RESTful API服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值