Django跨域问题解决方法

Django跨域问题解决方法

1、安装django-cors-headers

python 复制代码
pip install django-cors-headers

1.1、配置允许访问的IP

python 复制代码
# 添加允许访问的IP
ALLOWED_HOSTS = ['*'] # 允许全部IP访问项目

2、配置settings.py文件

a.在INSTALLED_APPS里添加"corsheaders"
python 复制代码
INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
 ]
b.在MIDDLEWARE_CLASSES添加配置:
python 复制代码
MIDDLEWARE_CLASSES = (
    ...
    'corsheaders.middleware.CorsMiddleware',
	'django.middleware.common.CommonMiddleware',
    ...
)

注意,corsheaders.middleware.CorsMiddleware一定要在django.middleware.common.CommonMiddleware之前

c.在setting.py底部添加
python 复制代码
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_ALL_ORIGINS = True
# 也可以根据需求详细配置
CORS_ORIGIN_WHITELIST = ("*",)

(一般配置以上三项就可以了)

3、配置项参数说明

  1. CORS_ALLOW_ALL_ORIGINS: 允许所有域名跨域访问。

    • 示例:CORS_ALLOW_ALL_ORIGINS = True
  2. CORS_ALLOWED_ORIGINS: 允许指定的域名跨域访问。

    • 示例:CORS_ALLOWED_ORIGINS = ['https://example.com', 'https://another.com']
  3. CORS_ALLOW_METHODS: 允许的HTTP方法。

    • 示例:CORS_ALLOW_METHODS = ['GET', 'POST']
  4. CORS_ALLOW_HEADERS: 允许的HTTP头。

    • 示例:CORS_ALLOW_HEADERS = ['Authorization', 'Content-Type']
  5. CORS_ALLOW_CREDENTIALS: 是否允许发送凭据(如cookies)。

    • 示例:CORS_ALLOW_CREDENTIALS = True
  6. CORS_PREFLIGHT_MAX_AGE: 预检请求的缓存时间(秒)。

    • 示例:CORS_PREFLIGHT_MAX_AGE = 86400

4、常用配置项的详细配置

Python 复制代码
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',
)
相关推荐
TELL52121 分钟前
帮我生成对应的sql 以及数据库-deepseek提示词
数据库·sql
能年玲奈喝榴莲牛奶29 分钟前
系统规划与管理师-第一章-考点记忆
大数据·数据库·软考·系统规划与管理师·系规
SatanII41 分钟前
mariadb
数据库·mariadb
大千UI工场1 小时前
时序数据库对数字孪生的作用
数据库·ui·时序数据库·前端开发·b端管理系统
Tongzhi20262 小时前
通芝科技无感考勤一体机:软硬一体,开箱即用
数据结构·数据库·科技·算法·均值算法·数据库开发
这就是佬们吗2 小时前
向量数据库选型与实战:从原理到生产环境的完整指南
数据库
Shawn Dev2 小时前
MySQL Binlog 数据误删除恢复完全指南
数据库·mysql·elasticsearch
oradh2 小时前
Oracle ADRCI 诊断数据工具总结
数据库·oracle·adrci
zzzll11113 小时前
Loop Engineering:循环工程的原理、实践与应用
java·数据库·python
IpdataCloud3 小时前
IPv6查出来的地理位置是错的?技术解析与双栈定位方案
数据库·tcp/ip·ip