1

Я использую Django для Rest API и Angularjs для интерфейсов. Я установил заголовок в Django, чтобы предоставить API доступ к домену (www.example.com).«Контроль доступа разрешить происхождение» Не работает в разных системах

Код работает нормально, я могу совершать ajax-звонки из своей системы (ОС - MAC, браузер: Firefox, Chrome, Safari, Android-хром, собственный браузер). Почти все.

И вдруг я получаю эту ошибку, на конкретной ОС:

XMLHttpRequest cannot load http://www.apicalls.in/. 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://www.example.com' is therefore not allowed access. 

Я получаю эту проблему на Windows 10 браузер Chrome (Обе ОС имеют тот же хром версия - 46.x.x.x). Я не могу понять это поведение, так как API работает отлично со всеми другими устройствами с одинаковым браузером. Кто-нибудь сталкивался с этой проблемой раньше?

ответ

0

Если ваш сервер настроен правильно (я имею в виду, что он соответствует спецификации CORS), то это может быть проблема с кешем.

Если вы извлекаться http://www.apicalls.in/ в вашем браузере до вашего Аякса (То есть, вы вызвали запрос GET к http://www.apicalls.in/ с в заголовке вашего запроса нет Origin.) , то ваш сервер будет служить веб-страницы с не Access-Control-Allow-Origin Заголовок в ответ. Ваш следующий запрос ajax на тот же URL-адрес попадет в кеш браузера и будет заблокирован браузером из-за того же ограничения источника.

Чтобы исправить это, вы можете добавить случайный параметр к вашему URL-адресу запроса (например, http://www.apicalls.in/?_=123) или открыть инструмент разработчика из хрома и проверить на disable cache. Удачи :)

Смежные вопросы