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',
)
相关推荐
captain3763 分钟前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你021424 分钟前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川39 分钟前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
数据库小组44 分钟前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制
zhangjw341 小时前
1-5 PostgreSQL 数据类型全集:基础类型、字符串、数值、时间类型
数据库·postgresql
王中阳Go2 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
cnskylee2 小时前
【MySQL】麒麟V10 SP3系统安装MySQL-Commercial-8.0.46
数据库·mysql·adb
梦幻通灵2 小时前
修改MySQL数据库递增序列【持续更新】
数据库·mysql
liminla!2 小时前
SQL 从入门到进阶:语法速查与实战练习(完整优化版)
数据库·sql·算法
tongyiixiaohuang2 小时前
供应商主数据同步实战:从易快报到金蝶云星空的单一策略落地
java·网络·数据库