Django 浏览器抱怨访问控制头丢失,即使它在那里

Django 浏览器抱怨访问控制头丢失,即使它在那里,django,cors,Django,Cors,我正在使用一个简单的Django中间件来设置访问控制头 class CorsMoiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): response = self.get_response(request) response["Access-Control-Allow-

我正在使用一个简单的Django中间件来设置访问控制头

class CorsMoiddleware:

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

    def __call__(self, request):
        response = self.get_response(request)
        response["Access-Control-Allow-Origin"] = "*"
        response["Access-Control-Allow-Credentials"] = True
        response["Access-Control-Allow-Methods"] = "GET"
        response["Access-Control-Max-Age"] = "3600"
        response["Access-Control-Allow-Headers"] = "Content-Type, Accept, X-Requested-With, remember-me"
        return response
使用curl,我可以清楚地看到正确的标题

< HTTP/1.1 200 OK
< Date: Thu, 24 Oct 2019 09:40:35 GMT
< Server: WSGIServer/0.2 CPython/3.7.4
< Content-Type: application/json
< Vary: Accept, Cookie
< Allow: GET, POST, HEAD, OPTIONS
< Access-Control-Allow-Origin: *
< X-Frame-Options: SAMEORIGIN
< Content-Length: 176
< Access-Control-Allow-Credentials: True
< Access-Control-Allow-Methods: GET
< Access-Control-Max-Age: 3600
< Access-Control-Allow-Headers: Content-Type, Accept, X-Requested-With, remember-me
...
尝试:

response["Access-Control-Allow-Credentials"] = 'true'

fetch
ed url中添加斜杠解决了问题。

响应的HTTP状态码是什么?您可以使用浏览器devtools中的网络窗格进行检查。这是4xx还是5xx错误,而不是200 OK成功响应?您可以使用django cors标头,而不是手动设置它们,这对我也不起作用。状态只是显示
(已取消)
response["Access-Control-Allow-Credentials"] = 'true'