2012-06-12 2 views
0

В настоящее время я изучаю пару возможностей для микросайта, который я создаю. Микросайт находится в другом домене на главном сайте, и мы хотим использовать некоторые формы с основного сайта. Тем не менее, мы не видим, чтобы на главной странице сайта была показана страница для отправки формы.jQuery ajax отправляет форму и отправляет данные в альтернативный домен

Вопрос в том, можно ли отправить форму на микросайте в действие основной формы сайта, поэтому я хочу отправить форму, которая установлена ​​на http://domain1.com, на номер http://domain2.com.

Смогу ли я это из-за межсайтового скриптинга и т. Д.?

ответ

0

Вы сражаетесь с http://en.wikipedia.org/wiki/Same_origin_policy.
Возможное решение будет использовать локальный прокси-сервер, такой как http://developer.yahoo.com/javascript/howto-proxy.html

+0

Новые браузеры позволяют вам оспаривать одну и ту же политику происхождения. – Erlend

+0

@Erlend: Не знал об этом. Любая ссылка для получения дополнительной информации? – xyz

0

Использование простого AJAX это невозможно, нет.

Для этого вам нужно использовать локальный прокси-сервер. Форма должна представить свои данные на серверный скрипт в том же домене. Этот скрипт должен отправить данные (используя cURL или тому подобное) в удаленное местоположение и вернуть ответ в форму.

+0

Извините, но не подходит для новых браузеров. См. X-access - control-allow-origin – Erlend

+0

@Erlend true, но в типичной моде Microsoft вам нужно глупо обходное решение для IE8/IE9, и это просто невозможно в IE7, если это требование, которое, к сожалению, все еще для много людей. –

-1

Вы должны быть в состоянии сделать это, разместив ссылку на действие основного объекта в форме микросайт. Также вы можете получить его через ajax, отправив вызов на адрес основного сайта и извлекая результаты.

+0

Это невозможно с помощью AJAX (что он указал), поскольку вы не можете отправить запрос AJAX в другой домен. –

+0

ok получил это. Мы можем получить данные из домена diff .. но не отправить его ...? COrrect .. –

0

То, что вы пытаетесь сделать, возможно, но с некоторыми ограничениями. Новая поддержка браузера кросс-домена ajax с использованием заголовков заголовков x-access-control-allow-origin и т. Д. Вы также можете использовать междоменную передачу сообщений (см. CORS). Для обеспечения обратной совместимости со старыми браузерами, easyXDM является опцией.

Другой вариант заключается в создании скрытого iframe, создании формы и отправке данных там, используя нормальное действие с действием, указывающим на другой домен.

Помните, что это может быть проблемой. Как вы останавливаете другие сайты от публикации на тот же URL-адрес.