powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
11 сообщений из 11, страница 1 из 1
GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
    #35344612
javacoder2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Защита по умолчанию не позволяет делать AJAX-запросы к сайтам отличным от сайта, откуда загружена HTML-страница.
Например FF ругается: Permission denied to call method XMLHttpRequest.open

Но как работает Google Maps API?
Фактически загрузка Javascript API c сайта Google'а и его использование, позволяют обращаться к сайту Google'а со страниц, загруженных с разных серверов(доменов).

Знающие люди, как это работает?
Внедрен гугловский плагин в каждый браузер(в инсталляшку), позволяющий без проблем обращаться только к map.google.com?
Спасибо.
...
Рейтинг: 0 / 0
GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
    #35344633
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А попробовать почитать у самого Google'а слабо?

Вот что он мне выдал для вставки в свой проект (комменты выкинул):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<div id="mapsearch"><span style="color:#676767;font-size:11px;margin:10px;padding:4px;">Loading...</span></div>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAADF_058Dbb8Rwbin96FPCHBSYNCmfnRIkYBuuYnW_Z4hRtjuV0xTLoNHZjAO6BeiZNkt3MCZ3ti66MA" type="text/javascript"></script>
<script src="http://www.google.com/uds/api?file=uds.js&v=1.0&source=uds-msw&key=ABQIAAAADF_058Dbb8Rwbin96FPCHBSYNCmfnRIkYBuuYnW_Z4hRtjuV0xTLoNHZjAO6BeiZNkt3MCZ3ti66MA" type="text/javascript"></script>
<style type="text/css">@import url("http://www.google.com/uds/css/gsearch.css");</style>
<script type="text/javascript">window._uds_msw_donotrepair = true;</script>
<script src="http://www.google.com/uds/solutions/mapsearch/gsmapsearch.js?mode=new" type="text/javascript"></script>
<style type="text/css">@import url("http://www.google.com/uds/solutions/mapsearch/gsmapsearch.css");</style>
<style type="text/css">
      .gsmsc-mapDiv {height : 275px;}
      .gsmsc-idleMapDiv {height : 275px;}
      #mapsearch {width : 365px; margin: 10px; padding: 4px;}
</style>
<script type="text/javascript">
      function LoadMapSearchControl() {
            var options = {
                  zoomControl : GSmapSearchControl.ZOOM_CONTROL_ENABLE_ALL,
                                     title : "Googleplex",
                                     url : "http://www.google.com/corporate/index.html",
                                     idleMapZoom : GSmapSearchControl.ACTIVE_MAP_ZOOM,
                                     activeMapZoom : GSmapSearchControl.ACTIVE_MAP_ZOOM}
            new GSmapSearchControl(document.getElementById("mapsearch"), "1600 Amphitheatre Parkway, Mountain View, CA", options);
      }
      GSearch.setOnLoadCallback(LoadMapSearchControl);
</script>

Это гаджет. Используются только совершенно легальные и документированные возможности.
Возможно, если ты изучишь все полученные скрипты, ты больше поймешь ...
...
Рейтинг: 0 / 0
GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
    #35344681
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скрипты изучать совсем необязательно...
достаточно того что они загружаются прямо с гугля. А значит могут слать суда запросы.


Можно юзать и локальные скрипты, через прокси.
...
Рейтинг: 0 / 0
GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
    #35345278
javacoder2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruckА попробовать почитать у самого Google'а слабо?

......................................
Это гаджет. Используются только совершенно легальные и документированные возможности.
Возможно, если ты изучишь все полученные скрипты, ты больше поймешь ...
Скрипты изучал. Только в одном месте нашел инициализацию объекта XMLHttpRequest.
Буду признателен, если укажешь "совершенно легальные и документированные возможности" для этого, узкого места: а именно использование XMLHttpRequest в GoogleMapAPI, позволяющего загружать данные(через Javascript) с сайта гугля на страницах, загруженных с других доменов.

LINUXERскрипты изучать совсем необязательно...
достаточно того что они загружаются прямо с гугля. А значит могут слать суда запросы.

Можно юзать и локальные скрипты, через прокси.

Тоже так думал, но не работает.
Скрипт загруженный с другого домена позволяет загружать данные только с домена, откуда загружена страница.
Проверял и на локалхост'е (разные домены на 127.0.01) и через удаленный сервер.

Для примера привожу тестовый код:

HTML:
Код: plaintext
1.
2.
3.
4.
5.
6.
<html>
<body>
<script type="text/javascript" src="http://test/testAjax.js"></script>
<input type="button" onclick="getData('http://test/testAjax.js');"/>
<pre id="info" style="width:100%;height:400px;overflow:auto;border:1px solid black;"></pre>
</body>
</html>

Javascript (testAjax.js):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
function getData (url, targetArea) {
try {
    var query = null;
    if(window.XMLHttpRequest) {
        var query = new XMLHttpRequest;
    } else if(typeof ActiveXObject != "undefined") {
        var query = ActiveXObject("Microsoft.XMLHTTP")
    } else {
        alert("Can't initializate XMLHttpRequest object!");
        return;
    }
    query.onreadystatechange = function() {
        onLoad(query);
    }
    query.open('POST', url, true);
    query.send('');
} catch (err) {
    alert("ERROR:" + err);
}
}
function onLoad(r) {
    if (r.readyState == 4) {
        if (r.status == 200) {
            var area = document.getElementById("info"); 
            if (area) {
                area.innerHTML = r.responseText;     
            }        
        } else {
            alert("ERROR HTTP Request:" + req.status);
        }
    }
}

т.е. например в hosts указано следующее:
127.0.0.1 localhost
127.0.0.1 test

если загружать с test, то работает, с localhost - не работает
и наоборот, если изменить в HTML с test на localhost
...
Рейтинг: 0 / 0
GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
    #35345308
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javacoder2008Скрипт загруженный с другого домена позволяет загружать данные только с домена, откуда загружена страница.
Ты же сам себе ответил.
...
Рейтинг: 0 / 0
GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
    #35345479
javacoder2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeТы же сам себе ответил.
Это был ответ на предыдущий пост, который утверждал, что скрипт может загружать данные с сервера откуда был загружен.

А вопрос так и остается: как GoogleMapAPI делает это?

например с сайта www.sql.ru, загружен HTML-код:

Код: plaintext
1.
2.
3.
.....
<script src="http://maps.google.com/?bla-bla-bal"></script>
.......

и вот этот javascript-код может грузить данные не только с сайта www.sql.ru , но и c maps.google.com .

Если это плагины гугля, работающие на уровне WindowAPI (и встроенные на уровне инсталляшек браузеров, т.е. не устанавливался дополнительный софт к браузерам и не было изменения дефалтовых настроек браузеров), тогда все понятно.

Если это что-то другое, то что???
...
Рейтинг: 0 / 0
GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
    #35345501
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да какая разница откуда грузится скрипт? Хоть из деревни Пупкино! Исполняется-то он на клиенте. Аякс не умеет работать с данными домен которых отличен домена загруженной страницы. Ну и всё тут. Чего не понятно? Хочешь аяксить другие домены - напиши на сервере скрипт типа читать-писать и грузи свою страницу с него.
...
Рейтинг: 0 / 0
GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
    #35345518
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeДа какая разница откуда грузится скрипт? Хоть из деревни Пупкино!
да, увы это так=(

а гугль, по ходу, юзает JSONP.
...
Рейтинг: 0 / 0
GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
    #35345600
javacoder2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeДа какая разница откуда грузится скрипт? Хоть из деревни Пупкино! Исполняется-то он на клиенте. Аякс не умеет работать с данными домен которых отличен домена загруженной страницы. Ну и всё тут. Чего не понятно? Хочешь аяксить другие домены - напиши на сервере скрипт типа читать-писать и грузи свою страницу с него.

Внимательно прочитал предыдущий пост?
1) HTML загружен с sql.ru
2) в нем код <script ....> , который грузит javascript GoogleMapAPI с maps.google.com
3) этот код грузит данные с maps.google.com (не с sql.ru )
...
Рейтинг: 0 / 0
GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
    #35345658
javacoder2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LINUXERа гугль, по ходу, юзает JSONP.

Спасибо за наводку на JSONP, понял как это работает.
...
Рейтинг: 0 / 0
GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
    #35346644
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага. Эту фишку я юзал, когда ещё не было такого слова "AJAX" и считалось дурным тоном, когда после загрузки твоя страничка на сервер лазает. Кстати, все тэги, у которых есть "src" - img, например - та же фишка. Я думал речь идёт только о реквесте. Извини.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / GoogleMap (Javascript API) & Permission denied to call method XMLHttpRequest.open?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]