1

我正在尝试测试对本地 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.

我试图寻找解决这个问题的方法。我已经检查了这个问题,但是清除我的缓存的建议没有任何作用。我还发现了涉及使用的建议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 调用?

4

0 回答 0