2012-04-27 5 views
-1

это может быть глупый вопрос .. но я решил дать ему попробовать здесь ...Отправка html-кода холста на клиентской веб-странице на сервер?

я занимаюсь разработкой веб-приложений с использованием AJAX, чтобы сделать взаимодействие между клиентом и сервером (Python/Django).

Теперь на странице клиента есть холст, содержащий динамически сгенерированное изображение; Я хочу получить это изображение и отправить это изображение на сервер, однако я не могу использовать Canvas.toDataURL() из-за нарушения правила безопасности на холсте (в этом случае клиент и сервер должны быть в том же домене).

, так что мне просто интересно, можно ли получить элемент canvas и отправить его обратно на сервер, а затем разрешить серверу обрабатывать его и извлекать его данные изображения?

оцените любой совет!

ответ

0

Единственная проблема, если дата <canvas> связана с изображениями различного происхождения (проблема CORS).

Просто

  • Используйте toDataURL(), чтобы получить данные изображения

  • сообщение этих данных на сервер с помощью обычного AJAX

  • сдирать URL данных префикс

  • base64 декодировать данные

  • Теперь у вас есть данные изображения в двоичном формате

  • делать все, что вы хотите с изображением

base64 + dataURL расшифровать пример: https://github.com/miohtama/Krusovice/blob/master/bin/create_bg_thumbnails.py#L62

+0

я знаю, этот рабочий процесс. но, как упоминалось в вопросе, я ищу способ обойти эту проблему безопасности canvas (проблема CORS), поэтому мне интересно, можно ли отправить весь элемент Canvas в html на сервер и позволить серверу извлекать данные изображения. – Simon

+0

Конечно, нет, потому что тогда не было бы CORS в первую очередь ... –

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