Как обработать кросс-доменный iframe файл с загрузкой ответа json? - PullRequest
4 голосов
/ 18 июня 2011

Я создаю API загрузки файлов.

По сути, пользователь должен будет отправить файлы со своей подписью api_key + в мой веб-сервис. Затем мой веб-сервис отвечает обратно JSON-ответом. Мне интересно, как этот процесс может работать асинхронно?

Предполагается, что пользователь POST запрос в форме, устанавливающей цель для iframe. Ответ JSON будет отправлен обратно пользователю в его / ее iframe с типом контента, установленным как «text / html». Он установлен как «text / html» вместо «application / json», потому что я хочу избежать использования тега «pre», добавляемого браузером вокруг ответа JSON. В любом случае, как пользователь читает этот ответ JSON, если iframe и родительское окно имеют разные домены? Будет проблема междоменной политики.

Динамически создавать тег «script», плюс JSONP в этом случае не будет работать, потому что мне нужно POST для загрузки. JSONP работает только с GET-запросами.

Ответы [ 2 ]

1 голос
/ 21 июня 2011

Посмотрите на пример загрузки здесь . Он использует междоменный обмен сообщениями для передачи сообщения обратно на страницу загрузки и использует easyXDM для поддержки всех браузеров.

Этот пост объясняет, как все это работает!

0 голосов
/ 19 июня 2011

Из-за единой политики происхождения браузеры не разрешают JavaScript в главном фрейме читать / получать доступ к любому контенту в iframe из другого домена. В этом случае пользователи должны будут использовать easyXDM или создать свой собственный прокси-сервер - здесь подразумевается, что пользователи должны будут написать некоторый код на своем бэкэнде, который может взаимодействовать с вашим API, так что пост-запрос будет идти непосредственно на ваш сервер. и получить ответ от своего прокси.

...