Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

AJAX на внешний хост

9.0K
06 февраля 2007 года
vov4ik
20 / / 09.08.2005
Всем привет!
Вопрос следующий: Как сделать аякс на внешний хост? У меня проблема с browser security. На внешний хост не пускает...
11K
06 февраля 2007 года
.nornad
125 / / 04.01.2007
Если права для апплетов и права для скриптов одного поля ягоды (а оно так и должно быть), то не пускает тебя на другие хосты совершенно правильно. Потому что безопасность это запрещает. Можно обойти, если обращаться к другому хосту с серверной стороны.
337
06 февраля 2007 года
shine
719 / / 09.06.2006
Цитата: vov4ik
Как сделать аякс на внешний хост?



Делаешь аякс на свой хост. Со своего хоста запрашиваешь внешний хост. В ответ клиенту возвращаешь данные полученные с внешнего хоста.

11K
06 февраля 2007 года
.nornad
125 / / 04.01.2007
Цитата:
Делаешь аякс на свой хост. Со своего хоста запрашиваешь внешний хост.


Перефразировал. :)

256
06 февраля 2007 года
foxweb
1.0K / / 27.07.2005
Цитата: vov4ik
Всем привет!
Вопрос следующий: Как сделать аякс на внешний хост? У меня проблема с browser security. На внешний хост не пускает...


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

9.0K
06 февраля 2007 года
vov4ik
20 / / 09.08.2005
Господа, это слишком просто :)
Сделать аякс на свой скрипт, который дернет внешний хост в целом то можно, но не мне. Речь идет именно о том как сделать AJAX на внешний хост, не используя серверную сторону.

Хорошо когда сервис который ты собираешься дергать поддерживает jsON, тогда в принципе AJAX и не нужен вовсе. Но тут возникает целая куча связанного с этим геморроя (например, баг Safari с динамическим добавлением элементов script).

А что ели сервис не поддерживает jsON? Тогда надо дергать именно аяксом, и тут возникают security limitations.

Как быть?
92
06 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
да ну никак =)
9.0K
06 февраля 2007 года
vov4ik
20 / / 09.08.2005
Совсем никак быть нельзя... Либо как-то разруливать динамическую подгрузку под Safari либо как-то делать AJAX. Одно из двух.
11K
06 февраля 2007 года
.nornad
125 / / 04.01.2007
А почему бы на сервере просто не расположить свой скрипт? Хоть на том же пхп, к примеру.
А насчёт разруливания ограничения прав могу предложить только написание своего браузера, который вообще не будет устанавливать подобных ограничений. Или разрешат, если его попросят. Только вот пользовать такой браузер мало кто захочет.
9.0K
06 февраля 2007 года
vov4ik
20 / / 09.08.2005
Если припедалить php скриптик то все становится совсем просто. Дело в том что мне надо прикрутить к markup-у некие JS скрипты который могли бы подтягивать картинки с Flickr и Youtube.
Так вот с Flickr все просто, они поддерживают jsON (хотя это опять таки не решает проблему полностью из-за бага в Safari - динамически не подгружаются скрипты). А с Youtube вообще гнилое дело они даже jsON не провайдят... Там надо именно AJAX юзать.... Ну и как вы понимете никакой AJAX на внешние хосты ломиться не хочет...

PHP не могу юзать из-за технических ограничений. Скриптик дергающий курлом внешний хост - 20 строчек со всеми необходимыми наворотами, но тем не менее юзать мне его нельзя...
13
06 февраля 2007 года
RussianSpy
3.0K / / 04.07.2006
Вам уже сказали - НИКАК.

Пишите ActiveX который будет запрашивать данные. Только тогда придется забыть о зверях вроде Safari, Opera и ФФ.

Либо пишите серверный кусок который будет дергать все что нужно и скармливать результат клиенту.

Других вариантов нет. А то что вы путаете JSON и AJAX - грустно. JSON, XML - это типы представления данных. AJAX - комплексная технология передачи данных.

Можно вообще не использовать ни JSON, ни XML и счастливо при этом жить.


Резюмирую: AJAX на другой хост невозможен.
256
06 февраля 2007 года
foxweb
1.0K / / 27.07.2005
2 RussianSpy:

ты его расстроил... блаженство в неведении!
253
06 февраля 2007 года
Proger_XP
1.5K / / 07.08.2004
Если уж есть очень большое желание извратится, то только для FF
try {
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
} catch(e) {}
Для Оперы вообще никак этого не сделать, а в IE это разрешается в настройках
256
06 февраля 2007 года
foxweb
1.0K / / 27.07.2005
решение что называется "через одно место" ) хотя познавательно.
253
06 февраля 2007 года
Proger_XP
1.5K / / 07.08.2004
Именно поэтому я его и показал. Для наглядности ;)
337
06 февраля 2007 года
shine
719 / / 09.06.2006
Все эти ActiveX и PriviledgeManagerы скорее всего неподойдут. Если человеку нужна такая кросбраузерность, что аж Safari упоминается, то все эти однобраузерные ухищрения никуда не годятся.
256
07 февраля 2007 года
foxweb
1.0K / / 27.07.2005
"и юный Эксплорер впереди!"
9.0K
07 февраля 2007 года
vov4ik
20 / / 09.08.2005
Цитата: RussianSpy

А то что вы путаете JSON и AJAX - грустно. JSON, XML - это типы представления данных. AJAX - комплексная технология передачи данных.

Можно вообще не использовать ни JSON, ни XML и счастливо при этом жить.



Я просто немного не верно выразился и как результат вы меня не верно поняли... Я прекрасно понимаю что AJAX и jsON это как спички и ложка. Дело в том что когда я упоминал jsON то имел в виду некий способ который я сейчас использую для внешних запросов.

Работает это дело так: на странице динамически скриптом создается новый script элемент. Затем этому элементу назначается некий src (url, который я хочу дернуть). В момент определения src происходит внешний запрос (в том числе и на внешний хост). Соответсвенно на мой запрос сервер возвращает некий JS примерно такого вида: someFunction(... jsON object goes here ...). Этот код выполняется браузером и если у меня определена функция someFunction, то она вызовется с один параметром - jsON объектом. Таким образом у меня получается запрос на внешний хост с получением респонса в виде jsON объекта.

Но тут есть одна трудность: Сафари по назначению src для script элемента не предпринимает никаких действий. Т.е. во всех нужных браузерах кроме Сафари запросы шлются на ура.

Вопрос в том как это побороть?
На сколько мне подсказывает гугла это вполне известный баг Сафари, который пофикшен в версии 3.0. Тем не менее подавляющее большинство серферов пользующих Сафари пока сидят под 2-ой версией (она была в Tiger), а третья (она вошла в Leopard) пока не особо распространена. Так что надо как-то эту проблему решать. Вот я и решил узнать может все-таки есть способ сделать аякс на внешний хост без сервер-сайд скриптинга.

338
07 февраля 2007 года
chigevara
529 / / 29.09.2003
Цитата: vov4ik
Если припедалить php скриптик то все становится совсем просто.


Мне нравится этот подход... Мы не ищем легких путей :D

9.0K
07 февраля 2007 года
vov4ik
20 / / 09.08.2005
Дело не в легкости того или иного пути. Просто если было бы можно припедалить серверный скрипт небыло бы этого поста в форуме. Еще раз повторюсь есть некие требования к реализации. Сервер-сайд скрипты нельзя пользовать.

Может кто-то знает как разрулить проблему в Сафари (динамическия подгрузка JS) ?
304
07 февраля 2007 года
Fenyx
707 / / 26.01.2005
Цитата: RussianSpy
Вам уже сказали - НИКАК.

Пишите ActiveX который будет запрашивать данные. Только тогда придется забыть о зверях вроде Safari, Opera и ФФ.

Либо пишите серверный кусок который будет дергать все что нужно и скармливать результат клиенту.

Других вариантов нет. А то что вы путаете JSON и AJAX - грустно. JSON, XML - это типы представления данных. AJAX - комплексная технология передачи данных.

Можно вообще не использовать ни JSON, ни XML и счастливо при этом жить.


Резюмирую: AJAX на другой хост невозможен.


AJAX как технология возможен на другой хост...
другое дело что такое браузер секурити :)....

9.0K
07 февраля 2007 года
vov4ik
20 / / 09.08.2005
Цитата: Fenyx
AJAX как технология возможен на другой хост...
другое дело что такое браузер секурити :)....


суть проблемы это не меняет

9.0K
08 февраля 2007 года
vov4ik
20 / / 09.08.2005
Всем спасибо. Проблему решил следующим образом:

 
Код:
scriptNode = document.createElement("script");
scriptNode.type = "text/javascript";
scriptNode.src = src;
document.getElementsByTagName('head')[0].appendChild(scriptNode);


Сафари не обрабатывает подгружаемый скрипт если его аппендить не в head.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог