广告
返回顶部
首页 > 资讯 > 后端开发 > Python >解决Django cors跨域问题
  • 516
分享到

解决Django cors跨域问题

2024-04-02 19:04:59 516人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

Django cors跨域问题 前后端分离项目中的跨域问题 即同源策略 同源策略:同源策略/SOP(Same origin policy)是一种约定,由 Netscape 公司 19

Django cors跨域问题

后端分离项目中的跨域问题 即同源策略

同源策略:同源策略/SOP(Same origin policy)是一种约定,由 Netscape 公司 1995 年引入浏览器,它是浏览器最核心也最基本的安全功能,现在所有支持 javascript 的浏览器都会使用这个策略。如果缺少了同源策略,浏览器很容易受到 XSS、 CSFR 等攻击。

同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个 ip 地址,也非同源。

源就是协议、域名和端口号。

协议:Http,https

跨域:前端请求URL的协议、域名、端口与前端页面URL不同就是跨域

在DjanGo中解决跨域问题

一、

# 1、安装第三方库 django-cors-headers
# 2、在settings.py中添加'corsheaders.middleware.CorsMiddleware',在SessionMiddleware和CommonMiddleware的中间
# 3、在INSTALLED_APPS里添加“corsheaders”
INSTALLED_APPS = [
    'search.apps.SearchConfig',
    'data.apps.DataConfig',
    'record_data.apps.RecordDataConfig',
    'deleted_data.apps.DeletedDataConfig',
    'mgmt.apps.MgmtConfig',
    'c_test.apps.CTestConfig',
    'rest_framework',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'corsheaders',  # 新增
]
# 4、在中间件中添加corsheaders.middleware.CorsMiddleware,django.middleware.common.CommonMiddleware
MIDDLEWARE = [
    # 'utils.middleware.ExceptionMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',  # 新增/必须在common中间件上面
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# 5、在settings.py底部增加
CORS_ALLOW_CREDENTIALS = True  # 允许携带cookie
CORS_ORIGIN_ALLOW_ALL = True  # 放行所有
CORS_ORIGIN_WHITELIST = ('*')  # 白名单
# CORS_ALLOW_METHODS:字符串列表,允许用哪些HTTP请求方法。
CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)
# CORS_ALLOW_HEADERS:字符串列表,允许使用哪些非标准HTTP请求头。
CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)

二、

# 可以自己注册一个中间件,在中间件process_response方法中对response进行封装
def process_response(self, request, response):
    response["Content-Type"] = "application/JSON"  # 响应信息的内容格式
    response["Access-Control-Allow-Origin"] = "*"  # 允许跨域请求的源地址, * 表示:允许所有地址
    response["Access-Control-Allow-Methods"] = "POST, GET, OPTIONS"  # 允许跨域请求的具体方法
    response["Access-Control-Max-Age"] = "1000"  # 用来指定本次预检请求的有效期,单位为秒,,在此期间不用发出另一条预检请求。
    response["Access-Control-Allow-Headers"] = "*"
    return response

跨域实现流程为

1、浏览器会第一次先发送options请求询问后端是否允许跨域,后端查询白名单中是否有这两个域名

2、如过域名在白名单中则在响应结果中告知浏览器允许跨域

3、浏览器第二次发送post请求,携带用户登录数据到后端,完成登录验证操作

到此这篇关于Django cors跨域问题的文章就介绍到这了,更多相关Django cors跨域内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 解决Django cors跨域问题

本文链接: https://www.lsjlt.com/news/126005.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 解决Django cors跨域问题
    Django cors跨域问题 前后端分离项目中的跨域问题 即同源策略 同源策略:同源策略/SOP(Same origin policy)是一种约定,由 Netscape 公司 19...
    99+
    2022-11-12
  • Django cors跨域问题怎么解决
    这篇文章主要介绍“Django cors跨域问题怎么解决”,在日常操作中,相信很多人在Django cors跨域问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Django&nb...
    99+
    2023-07-02
  • 跨域(CORS)问题的解决方案分享
    目录前后端分离项目,如何解决跨域问题什么是跨域问题跨域问题演示及解决点击前端登录按钮覆盖默认的CorsFilter来解决该问题重新运行代码,点击登录按钮设置SpringSecurit...
    99+
    2023-02-13
    cors跨域问题 CORS跨域解决方案 CORS解决跨域的几种实现方式
  • django跨域问题如何解决
    Django跨域问题可以通过以下几种方法来解决:1. 使用Django的CORS插件:可以通过安装django-cors-heade...
    99+
    2023-09-26
    Django
  • 快速解决跨域请求问题:jsonp和CORS
    网上各种跨域教程,各种实践,各种问答,除了简单的 jsonp 以外,很多说 CORS 的都是行不通的,老是缺那么一两个关键的配置。本文只想解决问题,所有的代码经过亲自实践。本文解决跨域中的 get、post、data、cookie 等这些问...
    99+
    2023-05-30
    jsonp 跨域问题 cors跨域请求
  • jsonp和CORS跨域请求问题怎么解决
    这篇文章主要讲解了“jsonp和CORS跨域请求问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jsonp和CORS跨域请求问题怎么解决”吧!JSONPjsonp 的原理很简单,利...
    99+
    2023-06-02
  • Nginx如何解决前端跨域问题以及CORS跨域配置
    Nginx如何解决前端跨域问题以及CORS跨域配置,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Nginx的CORS配置,网上太多这配置了,但大家更多的复制粘贴...
    99+
    2023-06-04
  • 如何解决Django+vue跨域问题
    小编给大家分享一下如何解决Django+vue跨域问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!跨域由于开发模式为前后端分离...
    99+
    2022-10-19
  • Django解决跨域请求的问题
    一、引入   对于想要利用django框架实现前后端分离的童鞋来说,首要的问题便是解决跨域请求的问题。何为跨域请求?简单来说,就是当前发起的请求的域与该请求指向的资源所在的域不一致。当协议+域名+端口号均相同,那么就是同一个域。举个例子...
    99+
    2023-01-30
    Django
  • django框架进阶-解决跨域问题
    在Django框架中,可以通过以下方法解决跨域问题:1. 使用django-cors-headers库:django-cors-he...
    99+
    2023-09-01
    django
  • Quarkus中filter过滤器跨域cors问题解决方案
    目录前言web依赖过滤器filter开发resteasy的filtervertx的filterQuarkus中的跨域前言 Quarkus中的web模块是基于java标准web规范ja...
    99+
    2022-11-13
  • Node.js基于cors解决接口跨域的问题(推荐)
    目录解决问题使用express编写get/post接口构造服务器并将接口写入在html页面中发起get/post请求:接口的跨域问题使用cors中间件解决跨域问题了解问题什么是COR...
    99+
    2022-11-13
    Node.js cors解决接口跨域 Node.js 接口跨域
  • Quarkus中filter过滤器跨域cors问题怎么解决
    本篇内容介绍了“Quarkus中filter过滤器跨域cors问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言Quarkus中...
    99+
    2023-06-29
  • Nodejs如何解决跨域(CORS)
    目录Nodejs解决跨域(CORS)手动配置CORS模块axiosNodejs CORS跨域问题总结Nodejs解决跨域(CORS) 前后端分离的大环境下,受制于同源策略,我们需要懂...
    99+
    2023-01-17
    Nodejs跨域 Nodejs解决跨域 Nodejs CORS
  • 如何解决Spring boot 和Vue开发中CORS跨域问题
    这篇文章主要介绍如何解决Spring boot 和Vue开发中CORS跨域问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 遇到的问题:我用spring-boot 做Rest服...
    99+
    2022-10-19
  • Nginx解决跨域问题
    目录 前言 一、跨域问题 1.什么是跨域  2.CORS 二、Nginx跨域处理 三.补充 前言 这几天出现了一个问题,我们中的一个A系统需要给B系统调用,造成了跨域问题。 一、跨域问题 1.什么是跨域 当一个请求url的协议、域...
    99+
    2023-09-02
    nginx 服务器 开发语言
  • 使用Flask和Django中解决跨域请求问题
    Flask解决跨域 1、下载flask_cors包 pip install flask-cors 2、使用flask_cors的CORS 代码示例 from flask_c...
    99+
    2022-11-12
  • Spring Security拦截器引起Java CORS跨域失败的问题及解决
    在已设置CORS的项目中加入Spring Security,导致跨域访问失败,一开始以为是设置错CORS的问题,后来才发现是因为Spring Security的拦截冲突引起的。 (...
    99+
    2022-11-12
  • 详解Spring MVC CORS 跨域
    介绍跨域CORS,全称是"跨域资源共享"(Cross-origin resource sharing)当页面发出跨域请求时:简单请求(先简单理解为正常的get/post吧):浏览器将请求的地址添加到header的Origin里面发送请求。接...
    99+
    2023-05-31
    spring mvc cors
  • VUE如何解决跨域问题
    这篇文章主要介绍“VUE如何解决跨域问题”,在日常操作中,相信很多人在VUE如何解决跨域问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”VUE如何解决跨域问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作