Django中解决跨域请求问题

时间:2019-12-03
本文章向大家介绍Django中解决跨域请求问题,主要包括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',  # 注释

问题解决.

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