Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ajax, ограничение загрузки только с текущего хоста, Как загружать с удаленных серверов инф.? 
V
    Опции темы
silvek
Дата 8.4.2008, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.4.2008

Репутация: нет
Всего: нет



Добрый день!

Я программирую аякс-приложение. Смысл которого заключается в загрузке информации с удаленных серверов, взаимодействии с пользователем.
Ограничение аякса(или java-script) в том, что оно примет данные только если хост отправителя тот же что и текущий. Т.е. если мы взяли данные с этого же сайта.
Мне требуется проводить обмен данными с другими серверами(которые предоставляют разные службы). 

Итого, вопрос:

как обойти указанное ограничение или как сделать аякс приложение, которое смогло бы взаимодействовать с удаленными узлами в интерактивном режиме(а не только загрузка данных)?


PM MAIL   Вверх
mishaSL
Дата 8.4.2008, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 54



Думаю такой вариант должен работать безотказно:
Перетранслировать запросы на другие сервера через свой сервер. Т.е. посылаете запрос на свой сервер, а там уже куда нужно обращаетесь.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
silvek
Дата 8.4.2008, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.4.2008

Репутация: нет
Всего: нет



Да, это я прекрасно понимаю =) 

Но это неудобно. Клиенты должны вставить небольшой код на сайт(как статистики счетчик) и работать с приложением.
Указанный вариант я рассматривал, но он доставит клиенту дополнительные затруднения, тем более это по соображениям безопасности не каждый позволит сделать.

Я ищу решение обхода огрничения на JS, без применения обходных путей на том же сервере.
Решение должно быть!
PM MAIL   Вверх
mishaSL
Дата 8.4.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 54



Цитата(silvek @  8.4.2008,  20:01 Найти цитируемый пост)
Но это неудобно. Клиенты должны вставить небольшой код на сайт(как статистики счетчик) и работать с приложением.
Указанный вариант я рассматривал, но он доставит клиенту дополнительные затруднения, тем более это по соображениям безопасности не каждый позволит сделать.

Не вижу никаких затруднений. Либо я чего-то не понял в вашем вопросе, либо вы чего-то не так делаете. Объясните подробнее, что вам необходимо?
Цитата(silvek @  8.4.2008,  20:01 Найти цитируемый пост)
Я ищу решение обхода огрничения на JS, без применения обходных путей на том же сервере.
Решение должно быть! 

Если вы ищете решение исключительно на JS, то вам наверное надо обратиться с соответствующий форум.



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
solenko
Дата 8.4.2008, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



Что-то я не могу понять в чем проблемма... Вы хотите предоставлять некий сервис, т.е. пользоватьель, вставляя ваш код, должен получать возможность работы с вашим сайтом. Ну так если js загружен с вашего сайта, то и для системы безопасности он будет "своим". 
Ну а если нужно работать со стороними сайтами, то все зависит от них. У многих сайтов, ориентированных на предоставление сервисов есть JSON интерфейс.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
silvek
Дата 9.4.2008, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.4.2008

Репутация: нет
Всего: нет



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

Для первой загрузки именно таким образом я и загружаю код.
ЗАтем если я хочу по нажатию на ссылку загрузить еще чегонибудь я использую скрытый фрейм по типу
<a href=PATH target=hidden_frame_name>load something</a>

Вот теперь результат запроса без перезагрузки страницы попадет в скрытый фрейм.
Но нам надо вывести его на страницу из фрейма.
Для этого я использую конструкцию вида
parent.return_data('ЗДЕСЬ ПОЛУЧЕННЫЙ ХТМЛ КОД');

Так вот такая конструкция(опытным путем доказано) работает на страничках того же хоста и не работает на других хостах.

Что же мне делать?
PM MAIL   Вверх
Fortop
Дата 9.4.2008, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Пусть пользователь разместит скрипт на том хосте где он должен работать.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
silvek
Дата 9.4.2008, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.4.2008

Репутация: нет
Всего: нет



Могу доказать свои слова так:

Вот код для вставки(к примеру):

Код

            <iframe frameborder="0" height="0" width="0" name="meek_db_if" id="meek_db_if"></iframe>
            <div name="meek_db_dv" id="meek_db_dv"></div>
            <script type="text/javascript">
                <!--
                    var cli = 124;
                    function meek_db_return(data)
                    {
                        document.getElementById('meek_db_dv').innerHTML = data;
                    }                    
                -->
            </script>            
            <script type="text/javascript" src="http://k.mytools.su/ajax/init.js"></script>


Вы можете вставить его в любую вашу хтмл страницу даже на локальной машине и он загрузит "первую" страничку.
Далее если нажать "Скачать случайную цитату", он уже не вернет ничего.
Хотя совершенно такой же код, размещенный на том же сервере сработает
http://k.mytools.su/ajax/test/ .

Почему так?
(Зайду с другой стороны вопроса.)

Добавлено через 1 минуту и 9 секунд
Fortop, ну это, я повторюсь, не самое удобное решение.  
Хотя, если я буду в тупике - выбора у меня не будет.
PM MAIL   Вверх
skyboy
Дата 9.4.2008, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(silvek @  8.4.2008,  23:34 Найти цитируемый пост)
Почему так?

вопросы безопасности.
установить значение value у input type="file"
прочитать файл на компьютере пользователя
загрузить при помощи XKMHTTPRequest данніе с другого домена
Это все нереализуемо на "обычном" браузерном javascript. не могу заявить, что везде так(вполне вероятно, что некоторые "дырявые" версии браузеров не проверяли на соответствие домен, куда идет запрос, и текущий домен), но думаю, что стоит найти другое решение(означенный вариант с работой через свой сервер, на самом деле, не так уж и "сложен"; я, по крайней мере, сложности не вижу), чем городить непонятные огороды для 1% всех возможных версий всех браузеров.
PM MAIL   Вверх
Fortop
Дата 9.4.2008, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(silvek @  9.4.2008,  00:34 Найти цитируемый пост)
ну это, я повторюсь, не самое удобное решение.  
Хотя, если я буду в тупике - выбора у меня не будет. 

У тебя всего 2 варианта, и все их перечислили.
Так что выбирай.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
ksnk
Дата 9.4.2008, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: нет
Всего: 386



Цитата(silvek @  9.4.2008,  00:26 Найти цитируемый пост)
Для первой загрузки именно таким образом я и загружаю код.
ЗАтем если я хочу по нажатию на ссылку загрузить еще чегонибудь я использую скрытый фрейм по типу
<a href=PATH target=hidden_frame_name>load something</a>

А дело не может быть в кэшировании странички? если посмотреть обмен заголовками с сервером, не станет яснее?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
silvek
Дата 9.4.2008, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.4.2008

Репутация: нет
Всего: нет



Ок, всем спасибо! Буду использовать систему с работой через свой же сервер.


ksnk, нет. Везде посылаются антикеш заголовки.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.