#以中间件方式解决API数据访问跨域问题
1.API下新建文件夹下写PY文件
a.引入内置类继承:

from django.middleware.common import MiddlewareMixin

class CORSMiddleware(MiddlewareMixin):
def process_response(self,request,response):
#添加响应头
#允许你的域名来获取我的数据,'*'也可以单独设置
response['Access-Control-Allow-Origin'] = '*' #允许携带Content-Type请求头
response['Access-Control-Allow-Headers'] = 'Content-Type' #如果PUT或者别的请求形式报错
response['Access-Control-Allow-Methods'] = 'put,' return response

b.重写继承类:

可以引入,也可以如下重写方法
class MiddlewareMixin:
def __init__(self, get_response=None):
self.get_response = get_response
super().__init__() def __call__(self, request):
response = None
if hasattr(self, 'process_request'):
response = self.process_request(request)
response = response or self.get_response(request)
if hasattr(self, 'process_response'):
response = self.process_response(request, response)
return response class CORSMiddleware(MiddlewareMixin):
def process_response(self,request,response):
#添加响应头
#允许你的域名来获取我的数据,'*'也可以单独设置
response['Access-Control-Allow-Origin'] = '*'
#允许携带Content-Type请求头,如果允许别的请求头加入,写在后面,如k1
response['Access-Control-Allow-Headers'] = 'Content-Type,k1' return response

2.settings中间件添加

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'middleware.CorsMiddleware.CORSMiddleware'#引入处理跨域的类
]

最新文章

  1. Android 杀死进程
  2. Java多线程编程核心技术---线程间通信(一)
  3. petapoco-SQLServer模型增加注释
  4. 那些OVER的封装
  5. hdoj 5375 Gray Code
  6. Java网络编程(UDP协议:接收端)
  7. 让sublime支持gbk常用编码
  8. C#总结(三)DataGridView增加全选列
  9. mysql慢查询分析工具 mysqlsla 安装
  10. 洛谷 [P2762] 太空飞行计划问题
  11. MySQL 水平拆分与垂直拆分详解
  12. Codeforces Round#500 Div.2 翻车记
  13. centos下redis的导出和导入(限set命令)
  14. Cloud Container Service experimentation
  15. 解决Installation error: INSTALL_FAILED_VERSION_DOWNGRADE错误
  16. 深入浅出MongoDB应用实战开发
  17. nodejs zip压缩版安装与配置
  18. 【小游戏】flappy pig
  19. TCP系列23—重传—13、RACK重传
  20. Centos6.5+Python2.7 +ffmpeg+opencv2自动安装脚本

热门文章

  1. 记因内核版本错误导致U盘不能识别的问题解决
  2. win10与linux双系统切换时间不一致的调整
  3. 基于spec评论作品 - 探路者 贪吃蛇
  4. 智能客服 利用python运行java代码
  5. 做更好的自己 ——读《我是IT小小鸟》有感
  6. BETA阶段冲刺
  7. lintcode-507-摆动排序 II
  8. 3dContactPointAnnotationTool开发日志(三十)
  9. rfid工作原理
  10. python配置文件读取