码迷,mamicode.com
首页 > 其他好文 > 详细

django 解决csrf跨域问题

时间:2018-05-26 16:45:01      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:session   control   跨域问题   odi   else   style   options   tin   call   

1、中间件代码

[root@linux-node01 mysite]# tree middlewares
middlewares
├── base.py
├── base.pyc
├── cors.py
├── cors.pyc
├── __init__.py
└── __init__.pyc

0 directories, 6 files
[root@linux-node01 mysite]# 

2. 代码

middlewares/base.py

[root@linux-node01 mysite]# cat middlewares/base.py
#!/bin/env python
# -*- coding: utf-8 -*-
class MiddlewareMixin(object):
    def __init__(self, get_response=None):
        self.get_response = get_response
        super(MiddlewareMixin, self).__init__()

    def __call__(self, request):
        response = None
        if hasattr(self, process_request):
            response = self.process_request(request)
        if not response:
            response = self.get_response(request)
        if hasattr(self, process_response):
            response = self.process_response(request, response)
        return response
[root@linux-node01 mysite]# 

核心文件middlewares/cors.py

[root@linux-node01 mysite]# cat middlewares/cors.py
#!/bin/env python
# -*- coding: utf-8 -*-
from .base import MiddlewareMixin


class CORSMiddleware(MiddlewareMixin):
    """CORS中间件"""

    def process_response(self, request, response):
        if request.method == "OPTIONS":
            response[Access-Control-Allow-Origin] = *
            response[Access-Control-Allow-Headers] = *
            response[Access-Control-Allow-Methods] = *
        else:
            response[Access-Control-Allow-Origin] = *
        return response
[root@linux-node01 mysite]# 

3. settings.py文件配置

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,
    mysite.middlewares.cors.CORSMiddleware
]

 

django 解决csrf跨域问题

标签:session   control   跨域问题   odi   else   style   options   tin   call   

原文地址:https://www.cnblogs.com/supery007/p/9093171.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!