Django使用中间件通过CORS方式解决跨域

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

                    class CORSMiddleware(MiddlewareMixin):

                        def process_response(self,request,response):
                            # 添加响应头

                            # 允许你的域名来获取我的数据
                            response['Access-Control-Allow-Origin'] = "*"

                            # 允许你携带Content-Type请求头
                            # response['Access-Control-Allow-Headers'] = "Content-Type"

                            # 允许你发送DELETE,PUT
                            # response['Access-Control-Allow-Methods'] = "DELETE,PUT"

                            return response
        
            setting.py:
                配置
                    MIDDLEWARE = [
                        'django.middleware.security.SecurityMiddleware',
                        '......'
                        'api.cors.CORSMiddleware',
                    ]

 

posted @ 2019-03-08 21:04  YaoSir66  阅读(361)  评论(0编辑  收藏  举报