- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Прошу помощи.
Есть index.php
и AJAX.php
Всё это работает на одном домене, но мне надо чтобы AJAX.php лежал на другом домене.
Я много читал про политику безопасности и читал про способы как это обойти, но не нашел ни одного внятного примера как это реализовать.
Поэтому прошу решить проблему с кроссдоменностью AJAX на конкретном примере приведенном выше.
гуглите на тему JSONP - это кросдоменный ajax. Можно еще через прокладку в виде флешки, как минимум.
Здравствуйте.
Всё это работает на одном домене, но мне надо чтобы AJAX.php лежал на другом домене.
Я много читал про политику безопасности и читал про способы как это обойти, но не нашел ни одного внятного примера как это реализовать.
Поэтому прошу решить проблему с кроссдоменностью AJAX на конкретном примере приведенном выше.
Пост-запросы AJAX в связи с безопасностью по-определению работают только на вызываемом домене (если браузер не глючит).
Если Вы хотите делать какие-то запросы на другой сервер, то Вам необходима какая-то прослойка. Или прокси на стороне сервера, с которого грузится JS код или на клиенте в виде Flash'ки.
При этом, если Вы хотите чтобы это была flash на клиенте, то на домене, на который вы делаете post из flash в корне должен лежать файл crossdomain.xml
вот такого вида:
Где domain1.ru - это домен, с которого была загружена flash (если он отличается от того, куда вы хотите постить)
Все это сделано ради безопасности посетителя и веб-сервера, куда Вы собираетесь отправить post-запрос.
Ну если все-таки хочется отправлять посты, то создаем фрейм (0x0px), в нем рисуем форму (как угодно, через document.write или через document.createElement), в форме делаем method="post" и action = "http://www.domain2.ru/желаемый_скрипт", создаем какие надо поля внутри формы и вызываем submit() у созданной формы.
Все легко и просто :) если на сайте не стоит csrf защита ;)
C формой с action на другой домен неудобство в том, что чаще всего надо еще прочитать данные, которые скрипт на другом домене вернул. А в этом случае это затруднительно.
C формой с action на другой домен неудобство в том, что чаще всего надо еще прочитать данные, которые скрипт на другом домене вернул. А в этом случае это затруднительно.
Если домен (и сайт на который Вы собрались постить) Ваш, то ничего затруднительного нет, делайте call-back функцию в родительском фрейме и вызываете ее как ответ с нужными параметрами. Ну или вообще просто возвращаете html с js-кодом, который делает все что угодно.
Если-же домен не ваш, то это называете CSRF атака и особо выбирать между способами тут не приходится ;) Иных способов кроме формы с method=POST просто не существует.
Есть мой сайт на котором должен лежать AJAX.php и выполнять определенные действия в зависимости от того что пришлет JS (который расположен на любом домене, даже на UCOZ и народ).
Сейчас как и посоветовали копаю в сторону JSONP и читаю www.jstoolbox.com/2009/03/18/chto-takoe-jsonp/
gooooodru добавил 10-10-2011 в 17:52
Ни как не могу найти четкий пример:
это сервер здесь лежит файл XXX.php - в нем написано то-то: .......
это клиент, у него JS скрипт в котором написано то-то.....
Хотя бы обычный банальный пример... но нет
Все вокруг да около
Сейчас как и посоветовали копаю в сторону JSONP и читаю www.jstoolbox.com/2009/03/18/chto-takoe-jsonp/
А у Вас задача "отправить пост-запрос на другой домен", читайте пост выше.
Кстати, да, ТС - вам критично, чтобы данные через POST приходили? Скрипты, которые вам будут данные посылать рассчитывают на какой-то ответ от вашего скрипта или нет?
Сейчас как и посоветовали копаю в сторону JSONP и читаю www.jstoolbox.com/2009/03/18/chto-takoe-jsonp/
JSNOP никак не позволяет отправлять POST-запросы.
Чтобы все было ясно объясню реальную задачу:
есть сайт mirurokov.ru на нем есть база с гдз http://mirurokov.ru/gdz-onlain.html
Хочу сделать так чтобы у клиента был небольшой JS код (который бы работал и на UCOZ и на народе), который бы выводил выпадающий список на AJAX.
Так вот там уже есть js код-попытка это реализовать, но проблема в том что это не работает в IE (очень хороший и нужный браузер)
В принципе все равно будут GET или POST запросы главное чтобы работало во всех браузерах и на всех хостах ( UCOZ, народ)
Чтобы все было ясно объясню реальную задачу:
есть сайт mirurokov.ru на нем есть база с гдз http://mirurokov.ru/gdz-onlain.html
Хочу сделать так чтобы у клиента был небольшой JS код (который бы работал и на UCOZ и на народе), который бы выводил выпадающий список на AJAX.
Так вот там уже есть js код-попытка это реализовать, но проблема в том что это не работает в IE (очень хороший и нужный браузер)
В принципе все равно будут GET или POST запросы главное чтобы работало во всех браузерах и на всех хостах ( UCOZ, народ)
Данная задача решается с помощью приведенной вами ссылке про JSNOP. Но изначально Вы говорили про POST запросы, а это соовсем другая история ;)
Суть же ее решения (вашей задачи) простым языком (без использования каких-либо бибилиотек):
1. На своем сайте http://mirurokov.ru создаете скрипт, который будет возвращать JS-код с нужными Вам данными в виде, словаря, массива или чего еще хочется. В конце делаете вызов какой-нибудь JS-функции из основной страницы, которая переработает данные из массива в Ваш список выбора.
2. На странице в которую хотите вставить выпадающий список пишите обработчики на контроли выбора, в котором динамически создаете с помощью document.createElement объект типа script и прописываете ему setAttribute( "type", "text/javascript") и setAttribute( "src", "http://mirurokov.ru/ваш_скрипт.php?параметр1=1&параметр2=2&r="+Math.random() )
3. Получаете удовольствие :)
Увидев setAttribute( "src", "http://mirurokov.ru/ваш_скрипт.php?параметр1=1&параметр2=2&r="+Math.random() ) браузер сделает запрос к этому УРЛу, в параметрах к которому Вы передали нужные Вам для построения выдачи данные. ( &r="+Math.random() добавлять обязательно, так как это GET запрос и может иначе закэшироваться )
Результатом будет выполнение отданного данным урлом (http://mirurokov.ru/ваш_скрипт.php) JS кода, в котором Вы можете написать Все что хотите.