доступ к источникам данных за пределами домена

D
На сайте с 25.07.2006
Offline
92
dfg
4889

вот у меня такая фишка!

Есть некая форма поиска по каталогу, сам католог лежит на иностраном сервере, при выборе из списка чего либо форма подвисает и пишет типа "ждите данные грузятся", но если работать на локальном сервере, то все работает но выскакивет окно Internet Explorer и пишет "Данная страница обращается к данным, которые неудается проверить, что вызывает риск нарушения безопасности, Продолжит?" ну естественно разрешаем и все OK!

На удаленном сервере тоже работает если в свойствах обозревателя -->безопасность-->интернет-->другой уровень --> выставить значение "доступ к источникам данных за пределами домена"!

так вот вопрос как зделать так чтоб эта форма работала без изменения параметров безопасности?

Форма работет на 4-ёх "Javascript -ах", сама встроена на html страницу!

-
На сайте с 07.12.2005
Offline
97
-K-
#1

Через скрытый iframe и XMLRPC можно попробовать.

на select поле вешаешь onChange, который загружает в iframe файл, он подтягивает с удаленного данные и в ответ генерирует уже локальный JavaScript меняющий список в родителе

D
На сайте с 25.07.2006
Offline
92
dfg
#2

вот что у меня на select.

<select class=suche id=countrycode onChange="JavaScript:clsDoXMLReq('regioncode','&amp;search=&amp;lang=RU&amp;companycodes=','REG',this);"

name=countrycode>

-
На сайте с 07.12.2005
Offline
97
-K-
#3

Запости еще функцию clsDoXMLReq() и селект, содержимое которого надо изменить. Вечером напишу - с собой исходников нету.

Pike
На сайте с 13.07.2004
Offline
79
#4
dfg:

На удаленном сервере тоже работает если в свойствах обозревателя -->безопасность-->интернет-->другой уровень --> выставить значение "доступ к источникам данных за пределами домена"!
так вот вопрос как зделать так чтоб эта форма работала без изменения параметров безопасности?

Никак. Это нарушение common origin. Все основные браузеры выдадут предупреждение или откажутся работать в таких условиях.

free hosting (http://rahost.com)
-
На сайте с 07.12.2005
Offline
97
-K-
#5

Вот пример, на него уже можно накручивать все что угодно :)

Страница с формой:


<html>
<body>
<form name="data_form" id="data_form" action="">
<select name="sel" id="select_data" onChange="(this.value > 0) ? document.getElementById('work_frame').src='iframe.php?str='+this.value : alert('выберите один из вариантов')">
<option value="0">выберите</option>
<option value="1">один</option>
<option value="2">два</option>
<option value="3">три</option>
</select>
<select name="sel2" id="select_data2">
<option value="0">выберать значение в предыдущем списке</option>
</select>
</form>
<div style="display: none;"><iframe id="work_frame" src="" width="0" height="0"></iframe></div>
</body>
</html>

Файл iframe.php:


<script type="Text/JavaScript">
newVal = new Array();
<?
$str = isset($_GET['str']) ? $_GET['str'] : 0;
/// Здесь получаются данные с удаленного сервера и формируется JavaScript массив значений
for ($i = 0; $i <= $str; $i++)
{
echo "newVal[" . $i . "] = new Array('" . $i . "', '" . str_repeat("!", $i + 1) . "');";
}
?>
sel_list = parent.document.getElementById('select_data2'); /// Инициализируем список для редактирования
sel_list.options.length = 0; /// Удаляем элементы из списка
for(i = 0; i < <?=$str;?>; i++)
{
if (document.createElement)
{
var newOne = document.createElement("OPTION");
newOne.text = newVal[1];
newOne.value = newVal[0];
// тут мы используем для добавления элемента либо метод IE, либо DOM, которые, alas, не совпадают по параметрам…
(sel_list.options.add) ? sel_list.options.add(newOne) : sel_list.add(newOne, null);
}
else
{
// для NN3.x-4.x
sel_list.options = new Option(i, i, false, false);
}
}
</script>
dantess
На сайте с 06.11.2004
Offline
133
#6

копай в сторону p3p

D
На сайте с 25.07.2006
Offline
92
dfg
#7
dfg:
вот у меня такая фишка!
но если работать на локальном сервере, то все работает но выскакивет окно Internet Explorer и пишет "Данная страница обращается к данным, которые неудается проверить, что вызывает риск нарушения безопасности, Продолжит?" ну естественно разрешаем и все OK!

совсем забыл, работает если только писать адрес без WWW а просто http://сайт/

D
На сайте с 25.07.2006
Offline
92
dfg
#8

к сожалению приведенный выше скрипт неработает! оч жаль а такбы хотелось разобраться в этом деле!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий