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

Django跨域问题解决方法

Django跨域问题解决方法

1、安装django-cors-headers

pip install django-cors-headers

1.1、配置允许访问的IP

# 添加允许访问的IP
ALLOWED_HOSTS = ['*'] # 允许全部IP访问项目

2、配置settings.py文件

a.在INSTALLED_APPS里添加“corsheaders”
INSTALLED_APPS = [
    ...
    'corsheaders'...
 ]
b.在MIDDLEWARE_CLASSES添加配置:
MIDDLEWARE_CLASSES = (
    ...
    'corsheaders.middleware.CorsMiddleware',
	'django.middleware.common.CommonMiddleware',
    ...
)

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

c.在setting.py底部添加
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、常用配置项的详细配置

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',
)
http://www.dtcms.com/a/86481.html

相关文章:

  • 用Selenium+lxml库完成淄博链家网数据的爬取
  • 微服务中的服务发现
  • 基于人工智能的扫阅卷和数据分析服务需求文档
  • 虚幻基础:UI
  • fastapi+playwright爬取google搜索1-3页的关键词返回json
  • C++——引用
  • xy轴不等比缩放问题——AUTOCAD c#二次开发
  • Node.js 端口占用错误及解决方案:从 EADDRINUSE 到成功启动服务器
  • gin学习
  • Blender导出fbx到Unity找不到贴图的问题
  • Android笔记之项目引用第三方库(如:Github等)
  • 单片机引脚的电气属性Electrical properties
  • python 学习基本语法整理
  • Vue3+Vite单页面应用(SPA)改造为多页面应用(MPA)
  • PTA 1097-矩阵行平移
  • UNIX网络编程笔记:客户/服务器程序示例
  • git,openpnp - 根据安装程序打包名称找到对应的源码版本
  • 大数据从入门到入魔系列————大数据治理技术栈技术选型
  • AI开源项目
  • 2. 商城前端部署
  • 【学习笔记】卷积网络简介及原理探析
  • AtCoder 第398场初级竞赛 A~E题解
  • Python-docx库详解:轻松实现Word文档自动化生成与图片尺寸控制
  • Java单例模式、懒汉模式、饿汉模式和懒加载
  • Linux任务管理与守护进程
  • Qt的内存管理机制
  • 一些SQL优化经验(非添加索引版)
  • ccfcsp3302相似度计算
  • 计算机网络(第三章)
  • VScode页面错误,可以编译C++20版本,但页面显示有错误的解决方案