Параметры предварительной проверки Django Rest Framework/Angular JS

Мое приложение использует DRF для серверной части и использует API с AngularJS. Для некоторых конкретных API я столкнулся со следующей проблемой.

XMLHttpRequest cannot load `http://localhost:8000/someurl`. The request was redirected to `'http://localhost:8000/someurl/'`, which is disallowed for cross-origin requests that require preflight.

Я использую django-cors-headers и уже установил свои настройки.

  • Корсское происхождение разрешено для всех.
  • Append_slash имеет значение Истина.
  • CORS_PREFLIGHT_MAX_AGE установлен.
  • Промежуточное программное обеспечение заголовка cors установлено соответствующим образом.

Сервер переднего плана работает на локальном хосте: 3000. Любая помощь? Спасибо.


person Nish    schedule 08.09.2014    source источник


Ответы (1)


Я думаю, что у меня есть разумное решение проблемы. Может когда-нибудь пригодится другим. AngularJS $resource удаляет '/' из URL-адреса. И предварительный запрос OPTIONS для URL-адреса 'http://localhost:8000/someURL' перенаправлялся на 'http://localhost:8000/someURL/', потому что django APPENDS_SLASH по умолчанию. Следовательно, предварительный запрос перенаправлялся.

Либо мне нужно заставить $resource не удалять '/' из URL-адреса, либо заставить django использовать APPEND_SLASH = False и соответствующим образом обновить мои URL-адреса.

person Nish    schedule 09.09.2014
comment
Спасибо за ваш ответ работает для меня. Добавил {stripTrailingSlashes: false} в конфигурацию $resource и все в порядке. - person radzserg; 18.09.2015