You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django如何编写中间件以在收到OPTIONS请求时返回200状态码

Django OPTIONS请求统一返回200中间件编写方法

1. 编写中间件逻辑

在你的Django应用目录下新建middleware.py文件,添加如下代码:

from django.http import HttpResponse

class OptionsRequestMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        # 匹配OPTIONS请求
        if request.method == "OPTIONS":
            # 直接返回200状态码,可选添加CORS相关响应头
            response = HttpResponse(status=200)
            # 如果你需要支持跨域可放开下面的配置,按需修改
            # response["Access-Control-Allow-Origin"] = "*"
            # response["Access-Control-Allow-Methods"] = "GET, POST, PUT, DELETE, OPTIONS"
            # response["Access-Control-Allow-Headers"] = "*"
            return response
        
        # 非OPTIONS请求继续走正常的处理流程
        response = self.get_response(request)
        return response

提示:如果你项目已经集成了django-cors-headers库,不需要自己写中间件,只需配置CORS_ALLOW_METHODS包含OPTIONS即可,不过上述原生实现不依赖任何第三方库,兼容性更强。

2. 注册中间件

打开项目的settings.py文件,找到MIDDLEWARE配置项,把上面写的中间件添加到列表的靠前位置(建议放在django.middleware.common.CommonMiddleware之前即可):

MIDDLEWARE = [
    # 其他已有的内置/自定义中间件,比如安全相关的中间件
    "你的应用名.middleware.OptionsRequestMiddleware", # 替换成你实际的应用名和中间件路径
    "django.middleware.common.CommonMiddleware",
    # 剩下的其他中间件
]

验证效果

配置完成后重启Django服务,发送OPTIONS请求到任意接口,都会直接返回200状态码,不会走到后续的视图逻辑,满足测试场景需求。

内容的提问来源于stack exchange,提问作者Santhosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 11:24:03