Django中解决跨域请求问题

Posted ggtomato

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django中解决跨域请求问题相关的知识,希望对你有一定的参考价值。

解决办法

  • 通过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中解决跨域请求问题的主要内容,如果未能解决你的问题,请参考以下文章

django解决跨域请求的问题

django解决ajax跨域请求

django解决跨域请求的问题

前后端分离,解决跨域问题及django的csrf跨站请求保护

Django前后端分离跨域请求问题

Django 跨域请求 解决 axios 未完待续