Отправить файл Django CSRF с запросом на загрузку YUI - PullRequest
0 голосов
/ 24 июня 2010

Я пытаюсь использовать загрузчик YUI для загрузки файлов в представление Django.

Тем не менее, я получаю ошибку 403 в CsrfViewMiddleware. Я определил, что проблема связана с тем, что флэш-загрузчик (который использует загрузчик YUI) не отправляет файл CSRF в запросе на загрузку файла.

Функция загрузчика YUI uploadAll () позволяет отправлять дополнительные данные с запросом на загрузку в форме объекта. Поскольку файл cookie CSRF может быть легко извлечен, я пытаюсь добавить файл cookie к запросу с помощью функции uploadAll (), но я не совсем уверен, в каком формате его отправлять, чтобы CsrfViewMiddleware находил файл cookie там, где он его ожидает , Это не работает:

var cookie = YAHOO.util.Cookie.get('csrftoken'); uploader.uploadAll(url, 'POST', { csrfmiddlewaretoken: cookie });

Любое понимание будет с благодарностью!

1 Ответ

0 голосов
/ 24 июня 2010

К сожалению, из-за ограничений Flash-плеера, YUI Uploader не может вставить cookie в заголовок запроса, что и ожидается от бэкэнда. Единственное, что вы можете сделать, это то, что делает дополнительный аргумент, это добавить переменные POST в запрос. Однако это означает, что вам нужна дополнительная логика сервера, чтобы извлечь их как переменные POST, и они сравнивают их с записью cookie - по умолчанию это не сработает.

Если вы не можете изменить код на стороне сервера, вы не сможете аутентифицировать запросы, отправленные с Uploader: (.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...