Я пытаюсь проверить звонок на мой локальный сервер разработки Django.Это вызов AJAX, который возвращает объект JSON.Представление 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 Call?