React Axios + Django 跨域解决方案详解

ops/2025/2/28 5:53:38/

一、Django 后端配置(Python)

1.1 安装 CORS 中间件
pip install django-cors-headers
1.2 配置 settings.py
# settings.py# 核心配置项
INSTALLED_APPS = [...'corsheaders',  # 新增应用
]MIDDLEWARE = [...'corsheaders.middleware.CorsMiddleware',  # 必须放在最前'django.middleware.common.CommonMiddleware',
]# 跨域配置
CORS_ALLOWED_ORIGINS = ["http://localhost:3000",  # React开发地址"https://your-production-domain.com",
]# 允许携带Cookie
CORS_ALLOW_CREDENTIALS = True# 允许的自定义请求头
CORS_ALLOW_HEADERS = ['content-type','authorization','x-csrftoken',  # Django CSRF需要
]# 允许的HTTP方法
CORS_ALLOW_METHODS = ['GET','POST','PUT','PATCH', 'DELETE','OPTIONS'
]# Cookie安全配置(生产环境必须)
SESSION_COOKIE_SAMESITE = 'None'  # 允许跨站
SESSION_COOKIE_SECURE = True      # 仅HTTPS传输
CSRF_COOKIE_SAMESITE = 'None'
CSRF_COOKIE_SECURE = True# 生产环境域名白名单
ALLOWED_HOSTS = ['.your-domain.com','localhost','127.0.0.1'
]
1.3 视图示例(views.py)
from django.http import JsonResponse
from django.views.decorators.csrf import ensure_csrf_cookie@ensure_csrf_cookie  # 确保返回CSRF Token
def user_info(request):if request.method == 'GET':return JsonResponse({'username': request.user.username,'is_authenticated': request.user.is_authenticated})

二、React 前端配置(Axios)

2.1 创建 Axios 实例
// src/api/axios.js
import axios from 'axios';const axiosInstance = axios.create({baseURL: process.env.REACT_APP_API_BASE_URL,withCredentials: true, // 关键配置:允许携带Cookieheaders: {'Content-Type': 'application/json','X-Requested-With': 'XMLHttpRequest'}
});// 请求拦截器(添加CSRF Token)
axiosInstance.interceptors.request.use(

http://www.ppmy.cn/ops/161871.html

相关文章

校园快递助手小程序毕业系统设计

系统功能介绍 管理员端 1)登录:输入账号密码进行登录 2)用户管理:查看编辑添加删除 学生信息 3)寄件包裹管理:查看所有的包裹信息,及物流信息 4)待取件信息:查看已到达的…

DeepSeek今日连开3源!针对优化的并行策略,梁文锋本人参与开发

DeepSeek开源周第四天,直接痛快「1日3连发」,且全都围绕一个主题: 优化并行策略。 DualPipe:一种创新的双向流水线并行算法,能够完全重叠前向和后向计算-通信阶段,并减少“流水线气泡”。它通过对称的微批…

MFC案例:利用双缓冲技术绘制顶点可移动三角形

案例目标:在屏幕上出现一个三角形,同时显示各顶点坐标,当用鼠标选择某顶点并拖动时,三角形随鼠标移动而变形。具体步骤为: 一、在VS2022上建立一个基于对话框的MFC应用,项目名称:DrawMovableTr…

WebRTC学习七:WebRTC 中 STUN 协议详解

系列文章目录 第一篇 基于SRS 的 WebRTC 环境搭建 第二篇 基于SRS 实现RTSP接入与WebRTC播放 第三篇 centos下基于ZLMediaKit 的WebRTC 环境搭建 第四篇 WebRTC学习一:获取音频和视频设备 第五篇 WebRTC学习二:WebRTC音视频数据采集 第六篇 WebRTC学习三…

深度学习-11.用于自然语言处理的循环神经网络

Deep Learning - Lecture 11 Recurrent Networks for Natural Language Processing 介绍文本表示用数字表示单词词嵌入(word embedding) 机械翻译编码器 - 解码器循环模型(Encoder-decoder recurrent models)双向循环网络 注意力机制(方法&am…

ASP.NET 解决 NLog、log4net 和 Serilog 在 IIS 部署后不写日志的问题

在使用 NLog、log4net 或 Serilog 等日志框架时,如果将应用程序部署到 IIS 后发现日志无法正常记录,通常是因为权限或配置问题导致的。 简单粗暴:对写log的目录给添加Everyone 权限

DeepSeek 提示词:常见指令类型

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

Go Web 项目实战:构建 RESTful API、命令行工具及应用部署

Go Web 项目实战:构建 RESTful API、命令行工具及应用部署 Go 语言因其简洁高效、并发支持强大等特点,已经成为了后端开发的热门选择之一。本篇文章将通过实战案例带领你学习如何使用 Go 构建一个简单的 RESTful API,开发命令行工具&#xf…