当前位置: 首页 > news >正文

django-ninja 实现cors跨域请求

要在Django-Ninja项目中实现跨域(CORS),你可以使用django-cors-headers库,这是一个专门用于处理跨域资源共享(CORS)问题的Django应用程序。以下是具体的步骤和配置:

  1. 安装依赖
    使用pip安装django-cors-headers

    pip install django-cors-headers
    
  2. 修改设置
    在你的Django项目的settings.py文件中进行以下修改:

    • 注册应用:在INSTALLED_APPS列表中添加'corsheaders'
      INSTALLED_APPS = [# ...'corsheaders',# ...
      ]
      
    • 添加中间件:在MIDDLEWARE列表中添加'corsheaders.middleware.CorsMiddleware',并确保它位于'django.middleware.common.CommonMiddleware'之前:
      MIDDLEWARE = [# ...'corsheaders.middleware.CorsMiddleware',# 'django.middleware.common.CommonMiddleware',  # 确保CorsMiddleware在其之前# ...
      ]
      
    • 配置CORS设置:在settings.py文件中添加CORS的配置项。你可以根据需求配置允许的源、请求方法和请求头:
      CORS_ALLOW_ALL_ORIGINS = True  # 允许所有源跨域
      # 或者配置白名单
      # CORS_ALLOWED_ORIGINS = [
      #     'http://example.com',
      #     'https://sub.example.com',
      # ]
      CORS_ALLOW_METHODS = ['DELETE','GET','OPTIONS','PATCH','POST','PUT',
      ]
      CORS_ALLOW_HEADERS = ['accept','accept-encoding','authorization','content-type','dnt','origin','user-agent','x-csrftoken','x-requested-with',
      ]
      CORS_ALLOW_CREDENTIALS = True  # 如果需要跨域请求携带凭证(如Cookies)
      

以上步骤完成后,你的Django-Ninja项目应该能够处理跨域请求了。请注意,允许所有源(CORS_ALLOW_ALL_ORIGINS = True)可能会带来安全风险,因此在生产环境中,建议仅允许必要的源进行跨域请求。

http://www.lryc.cn/news/487971.html

相关文章:

  • 【论文阅读】InstructPix2Pix: Learning to Follow Image Editing Instructions
  • 常用在汽车PKE无钥匙进入系统的高度集成SOC芯片:CSM2433
  • 【第四课】rust声明式宏理解与实战
  • 渗透测试--Linux下的文件传输方法
  • 浅议Flink中的通讯工具: Akka
  • 基于YOLOv8深度学习的独居老人情感状态监护系统(PyQt5界面+数据集+训练代码)
  • Qt添加外部库:静态库和动态库,批量添加头文件
  • Unity类银河战士恶魔城学习总结(P132 Merge skill tree with skill Manager 把技能树和冲刺技能相组合)
  • Docker入门之Windows安装Docker初体验
  • DNS实验作业
  • CSS回顾-CSS选择器详解
  • FFMPEG录像推流时遇到的问题
  • 【STM32+K210项目】基于K210智能人脸识别+车牌识别系统(完整工程资料源码)
  • Unity脚本基础规则
  • 基于AIRTEST和Jmeter、Postman的自动化测试框架
  • 使用 Azure OpenAI 服务对数据进行联合 SharePoint 搜索
  • JavaScript学习笔记 1】初识JS
  • Linux-Samba
  • 【Java Web】JSON 以及 JSON 转换
  • Qt 元对象系统
  • 鸿蒙实战:使用隐式Want启动Ability
  • go-zero(二) api语法和goctl应用
  • java 操作Mongodb
  • 以Java为例,实现一个简单的命令行图书管理系统,包括添加图书、删除图书、查找图书等功能。
  • [JavaWeb]微头条项目
  • Linux(CentOS)安装达梦数据库 dm8
  • 【专题】中国企业出海洞察报告暨解码全球制胜之道报告汇总PDF洞察(附原数据表)
  • [ 跨域问题 ] 前后端以及服务端 解决跨域的各种方法
  • 网络安全之信息收集-实战-2
  • 利用飞书多维表格自动发布版本