?

Log in

 
 
28 Июнь 2011 @ 13:49
AJAX-загрузка файла на вконтакт  
Есть такая большая трабла:
Нужно сделать iframe-приложение для вконтакта, асинхронно загружающее фотографии пользователям в альбом и анализирующее JSON-ответ сервера.

В чём проблема:
Загрузка на сервера вконтакта осуществляется в три этапа.
На втором этапе нужно сделать отправку файла. Ответом на отправленный файл служит JSON от сервера вконтакта и более ничего.

Как сделать не получилось и почему:
- ajax-загрузка с помощью имеющихся плагинов для jQuery. Fail. Оные плагины используют объект window, обращение к которому запрещено вконтактом из соображений безопасности.
- загрузка с помощью скрытого iframe'а. Fail. Форма с target=hiddenIframe чудесно отправляет файл на сервер вконтакта, но проанализировать json-ответ невозможно. Моё приложение находится на домене waemenne.ru. hidden iframe обращается к vkontakte.ru. Нельзя получить содержимое iframe, обратившегося к другому домену из-за ограничений безопасности.

Как обойти все эти проблемы и победить приложение? Может быть Вы знаете рабочие примеры?
 
 
 
Sergei Sokolovchaka on Апрель, 11, 2012 06:04 (UTC)
Привет! Какое решение в итоге используете?
Ломаю голову над похожей задачей : )
Пока поступаю топорно: файл сначала загружается на мой сервер, а оттуда уже curl'ом пихается на серв. vk. Для "меня" — работает.
Но для публичного приложения страшно неэффективно: и трафик, и процессорные ресурсы.

Может, в браузере прямо позволить пользователю загрузить файл прямиком на vk (ну и что, что он узнает код своей сессии вашего приложения),
и по окончании загрузки в том же браузере пользователя хватать JSON-ответ и тем же ajax'ом слать его уже на ваш сервер - всё в фоне.
1. post на cs12345.vk.com/upolad.php...;
2. js получил ответ на этот ajax запрос;
3. post на vash.server.com?json=.....
Майский Котmay_cat_ghost on Апрель, 11, 2012 06:54 (UTC)
В итоге идея тогда загнулась и приложение не было завершено.

Расскажите больше о своём проекте? Может вместе чего надумаем...
Можно в скайп: may_cat_ghost
или по почте: maicatus@gmail.com