Клуб API Карт

Заголовок не указан

Пост в архиве.
bookaneer
6 мая 2009, 20:00

Добрый день. В мануале сказано, что для обращения к API с локалхоста подходит любой ключ.

Но в разработке как правило находится больше одного сайта, и тогда их приходиться растаскивать на своей рабочей машине по виртхостам.


Когда же пытаешся использовать API с виртхоста, к примеру http://sitename - возникает ошибка "неправильный ключ".

Как с этим бороться?


Ключ изначально был получен для домена sitename.ru.


Если вопрос банален - ткните плз в мануале где я его пропустил ;)

13 комментариев
Можно подставлять нужный ключ по имени хоста в серверном скрипте. На javascript это можно сделать, например так: (function(){ var keys; keys = { 'domen.ru': 'первый ключ', 'domen2.ru': 'второй ключ' }; for (host in keys) { if (location.host.indexOf(host) !== -1) break; }; include('http://api-maps.yandex.ru/1.0/?key=' + keys[host]); })(); Функция include может выглядеть так: function include (jsFile) { document.write(''); } Но лучше подставлять нужный ключ на серверной стороне.
Savitskiy Evgeniy
6 мая 2009, 21:45
сделай ключ для своего ip. У меня работает по такому ключу
Спасибо за инфо, но проблема несколько в другом. Виртхост находится на локальной машине. Мой рабочий компьютер, проще говоря. Прописан в hosts как 127.0.0.1 sitename Я по своей наивности полагал, что расположение по айпи 127.0.0.1 позволяет применять любой ключ. Кстати, со статическими картами такой проблемы нет. Статическая карта в том же месте не выдает ошибку ключа и отображается корректно. http://static-maps.yandex.ru/1.x/ работает http://api-maps.yandex.ru/1.0/ сообщает о неправильности ключа
Да, и еще. Если я просто открываю хтмл-документ в браузере - все работает. Если документ выдает мой локальный веб-сервер - ошибка ключа. Сервер находится на 127.0.0.1 порт 80-й...
ты избранный) всё не как у людей
Не как у людей - это каждый проект на своем виртхосте? Или у тебя на виртхосте с ключем проблем нет?
Проверил еще: 127.0.0.1 localhost - все ОК 127.0.0.1 любое имя - ошибка. Значит, при выдаче API запрос проверяется только на localhost? И не проверяется на 127.0.0.1 - ?
sairi-na-tenshi
7 мая 2009, 11:03
яваскрипт не знает твоего ip
умные Якарты требуют наличие точки в имени сайта. Если вы к сайту лазиете по ИП - там точка есть если через localhost - там точки нет переходите на вариант localhost.ru или my.self - и никаких проблем :)
Спасибо за вариант, проблему решили ниже :) На одном ИП несколько сайтов, так что по айпишнику ходить не получится. Была такая идея, создавать виртхост с точкой в имени,чтоб можно было зарегистрировать на него ключ. Но у нас по соглашению все сайты имеют простые короткие именования "одним словом". И "вариант с точкой" потянул бы за собой много переименований: в хостах, в конфиге апача, в ИДЕ где код пишется и т.д.
Королев Михаил
7 мая 2009, 14:16
где-то в мануалах было - в браузере можно отключить referer. Удобнее всего это делать в Opera - либо вытащить соотв. галку на панель статуса и рулить ею, либо правой кнопкой на странице "настройки для сайта"->"сеть"->"отправлять данные о ссылающейся странице" - и для именно этого хостнэйма запретить навсегда сие действо.. фича есть во всех браузерах, но включается менее гибко.
Афигеть, работает :)) Огромное спасибо!! Вот уж не думал, что отключение реферрера может решить проблему, а оно вот как :) У меня девелопер тулбар (под файрфокс), реферреры отключаются флажком на самом видном месте :))
Для упрощения жизни разработчикам для localhost и 127.0.0.1 не проверяется соответсвии ключа домену. Для других - проверяется. Отключение реферера помогает, однако в FF и Opera их отключить можно одник кликом, а IE этого не умеет, поэтому придется firewall'ом их ловить.