Как решить эту странную междоменную проблему? - PullRequest
0 голосов
/ 14 сентября 2011

В основном мое приложение находится в социальной сети, где на странице моего приложения они создают iframe со своим (не моим) URL-адресом для "рендеринга" , который затем принимает (не спрашивайте, как) мой код ( html, js) и места в теге body этого iframe.

Поскольку мне нужно иметь возможность запускать функции JavaScript в iframe, я решил не создавать еще один iframe с URL-адресом своего приложения, а с помощью вызовов ajax просто загрузить содержимое моего приложения в тело их iframe. Таким образом, я мог бы запустить их функции JavaScript. Если бы я создал свой iframe в их iframe, я бы не смог запустить их из-за междоменного содержимого, верно?

Однако, когда я выполняю ajax-вызовы с помощью jQuery для моего приложения, они выполняются из социальной сети (поскольку iframe их, просто код моего тела), и, следовательно, для ajax недоступны сессионные куки-файлы, сохраненные в домене моего приложения. звонки с этого iframe.

Я думаю, что мне нужно создать iframe ( dooh ) в iframe социальной сети, но как преодолеть междоменные проблемы для доступа к функциям JavaScript в родительском iframe?

P.S. Извините за длинное объяснение. Хотел сделать это понятным для всех.

1 Ответ

1 голос
/ 14 сентября 2011

Нет способа прочитать куки с другого домена.

Либо AJAX дает сбой, потому что вы используете XHR, и вы блокируетесь Одинаковой политикой происхождения . Или вы используете JSONP, а файл cookie не устанавливается.

Если вы используете XHR, переключитесь на JSONP .

Используя JSONP, вы не сможете устанавливать куки. JSONP просто загружает скрипт, устанавливая src тега script, и куки не могут быть установлены таким образом (не говоря уже о том, что их нельзя установить из другого домена).

Вам придется управлять состоянием вручную, передавая идентификатор сеанса с каждым запросом JSONP.

...