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

Django中解决跨域请求问题

时间:2019-12-03 23:11:23      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:setting   中间   type   let   问题   port   pre   core   response   

解决办法

  • 通过django中间件进行添加跨域头

1. 新建一个中间件,路径为:Django项目/your_app/core.py,

  • 内容如下
from django.middleware.common import CommonMiddleware

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请求头
        # response["Access-Control-Allow-Headers"] = "Content-Type"

        # 允许请求的方法
        # response["Access-Control-Allow-Methods"] = "DELETE,PUT,POST"

        return response

2. 在 项目/setting.py中, 新增

"api.core.CORSMiddleware", # 新增
#'django.middleware.csrf.CsrfViewMiddleware',  # 注释

问题解决.

Django中解决跨域请求问题

标签:setting   中间   type   let   问题   port   pre   core   response   

原文地址:https://www.cnblogs.com/GGTomato/p/11979965.html

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