我正在尝试测试对本地Django开发服务器的调用。这是一个返回JSON对象的AJAX调用。 Django视图执行以下操作:
return JsonResponse(response, safe=False)
我通过启动Django服务器(运行后端),然后启动浏览器并打开我修改过的HTML页面来进行测试。 Django不提供这些页面。
在Firefox中,我可以在页面上进行ajax调用。它会返回正确的数据和正确的MIME类型。
在Chrome中,我不能。我收到以下错误:
Cross-Origin Read Blocking (CORB) blocked cross-origin response http://localhost:8000/dataload/alljson with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details.
我试图寻找解决此问题的方法。我已经检查过this question,但是清除缓存的建议没有任何作用。我还发现了涉及使用django-cors-headers
的建议,但这是CORB(不是CORS)。尽管如此,我已经安装了corsheaders
并设置了CORS_ORIGIN_ALLOW_ALL = True
来消除这种可能性。
我的MIDDLEWARE
设置具有此
MIDDLEWARE = [
...
"corsheaders.middleware.CorsMiddleware",
"django.middleware.common.CommonMiddleware",
...
]
我在Firefox中获得的响应标头是:
Content-Length 12827
Content-Type application/json
Date Wed, 06 Feb 2019 18:38:03 GMT
Server WSGIServer/0.2 CPython/3.6.7
Vary Origin
X-Frame-Options SAMEORIGIN
我正在致电http://localhost:8000/dataload/alljson
。如果我呼叫http://localhost:8000/dataload/alljson/
(带有斜杠),则会得到404。
仍然没有骰子。
如何让Chrome允许我的开发Django服务器对此ajax调用进行响应?