django-ninja 实现cors跨域请求

server/2024/11/20 4:03:17/

要在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'
      python">INSTALLED_APPS = [# ...'corsheaders',# ...
      ]
      
    • 添加中间件:在MIDDLEWARE列表中添加'corsheaders.middleware.CorsMiddleware',并确保它位于'django.middleware.common.CommonMiddleware'之前:
      python">MIDDLEWARE = [# ...'corsheaders.middleware.CorsMiddleware',# 'django.middleware.common.CommonMiddleware',  # 确保CorsMiddleware在其之前# ...
      ]
      
    • 配置CORS设置:在settings.py文件中添加CORS的配置项。你可以根据需求配置允许的源、请求方法和请求头:
      python">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.ppmy.cn/server/143368.html

相关文章

uni-app快速入门(五)--判断运行环境及针对不同平台的条件编译

一、判断运行环境 在实际项目开发中,经常需要进行开发环境和生产环境的切换,uni-app可根据process.env.NODE_ENV判断当前运行环境是开发环境和生产环境,根据不同的环境调用不同的后台接口,具体实现方式: 在项目的static目录下建…

wireshark 基础

wireshark 基础 一、wireshark介绍 Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是捕获网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换…

Flutter网络通信-封装Dio

前言 dio 是一个强大的 Dart HTTP 请求库,支持全局配置、Restful API、FormData、拦截器、 请求取消、Cookie 管理、文件上传/下载、超时以及自定义适配器等。 Dio的pub地址为:dio | Dart package 封装要求 能够使用get、post、put、patch、delete、…

斯坦福iDP3——改进3D扩散策略以赋能人形机器人的训练:不再依赖相机校准和点云分割(含源码解析)

前言 今天10.23日,明天1024则将作为长沙程序员代表,在CSDN和长沙相关部门举办的1024程序员节开幕式上发言,欢迎广大开发者来长工作 生活 考察 创业,​包括我司七月也一直在招聘大模型与机器人开发人员 后天,则将和相关…

uniapp: 微信小程序包体积超过2M的优化方法(主包从2.7M优化到1.5M以内)

一、问题描述 在使用uniapp进行微信小程序开发时,经常会遇到包体积超过2M而无法上传: 二、解决方案 目前关于微信小程序分包大小有以下限制: 整个小程序所有分包大小不超过 30M(服务商代开发的小程序不超过 20M) 单个…

CISAW- CDF 认证电子数据取证训练: Linux 取证分析实战

基于《Linux 取证分析实战》一书,助力具备一定取证能力的专业人士拓展其自身能力,深度理解 Linux 环境下的证据所处位置、相关日志以及分析工具。 其一,Linux 取证概述; 其二,Linux 概述; 其三&#xff…

CANoe发送和接收CAN DataBase(DBC文件)数据

目录 1、接收CAN数据,DBC解析数据内容 2、发送DBC定义的CAN报文 CANoe是一款强大的网络仿真和开发工具,它支持发送和接收基于CAN DataBase(DBC文件)的数据。 1、接收CAN数据,DBC解析数据内容 要使用CANoe接收CAN数…

【深度学习】模型参数冻结:原理、应用与实践

在深度学习领域,模型参数冻结是一种重要的技术手段,它在模型训练和优化过程中有着广泛的应用。本文将详细介绍模型参数冻结的相关概念、应用场景、在代码中的实现方式以及一些实际的案例分析。 一、模型参数冻结的概念 在深度学习模型的训练过程中&…