Клуб API Карт

Ошибка "server responded 404" при YMapsML

Пост в архиве.

Элементарный код:

    <script type="text/javascript">
        window.onload = function () {
            var map = new YMaps.Map(document.getElementById("YMap"));
            map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
            var ml = new YMaps.YMapsML( 'http://mysql/xml/map.xml' );
            map.addOverlay(ml);
            YMaps.Events.observe(ml, ml.Events.Fault, function (ml, error) {
            alert('Ошибка: ' + error);
                });
           }
    </script>

http://mysql/ это локальный сервер, файл указаный существует и при вводе в браузер 'http://mysql/xml/map.xml'  показываеться xml, при выполнении этого скрипта вываливаетсья ошибка "server responded 404".Смотрел Заголовки, ниодного 404 при выполнении скрипта.Если вместо своего файла 'http://mysql/xml/map.xml' подставляю URL файла из яндекс примеров то все работает.Загружаю на реальный хостинг этот же файл из яндекс примера, проблема повторяеться.Сам вопрос:может ли ошибка "server responded 404" значить что проблема в самом файле(кодировка,формат и т.д.).Ну и какие будут предложения как решить даную проблему? Заранее благодарен за советы и предложения.

12 комментариев
Загружаемый YMapsML должен быть доступен из вне, иначе парсер YMapsML не сможет получить к нему доступ. Т. е. файл необходимо выложить на публичный хостинг.

Если на публичном хостинге выдается ошибка "server responded 404", то это означает, что файл не найден парсером.


Проще всего, если бы Вы выложили свой файл куда-нибудь (например, на народ) и дали ссылку. Я помогу Вам найти ошибку.

А мне может кто-нибудь помочь? Выводит ошибку "server responded 500" при попытке генерации YMapsML на лету.

http://test.arsisclub.ru/components/com_yandexmaps/twirl/ind.html

 

вот код php файла:

header("Content-type: text/xml; charset='utf-8'");

 

$host_name = "localhost"; 

$user_name = "map";

$user_password = "123"; 

$db_name = "map"; 

 

// соединение с сервером базы данных

if(!$link = mysql_connect($host_name, $user_name, $user_password))

{

  echo "
Не могу соединиться с сервером базы данных
";

  exit();

}

// выбираем базу данных

if(!mysql_select_db($db_name, $link))

{

  echo "
Не могу выбрать базу данных
";

  exit();

}

mysql_query('SET NAMES utf8');

 

echo 'http://maps.yandex.ru/ymaps/1.x" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maps.yandex.ru/schemas/ymaps/1.x/ymaps.xsd"> 

    http://maps.yandex.ru/representation/1.x"> 

         

 

         

             

         

     

 

     

        Объекты карте 

         

        ';

$query1 = 'SELECT a.*, t.deficon AS deficon1, t.icon AS icon1, t.ai_98 AS ai_98, t.ai_95 AS ai_95, t.ai_92 AS ai_92, t.dt AS dt, t.station_title AS station_title'

.' FROM #__yandexmaps_marker AS a'

.' LEFT JOIN #__yandexmaps_map AS c ON c.id = a.catid '

.' LEFT JOIN #__yandexmaps_type AS t ON t.id = a.type_id '

.' AND a.published = 1';

$result1 = mysql_query($query1);

 

while ($markerV = mysql_fetch_array($result1)){*/

echo '';

echo '', htmlspecialchars($markerV['adress']), '';

echo '';

echo '';

echo '', $markerV['station_title'], '';

echo '';

echo '';

echo '';

echo '', $markerV['longitude'], ' ', $markerV['latitude'], '';

echo '';

echo '';

echo "\n";

}

echo '

   

';

?>

Чем может помочь этот php-код? выложите итоговый YMapsML

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

Ну вы же его как то Яндексу отдаете

Наверное можно его по http и самому запросить

Наверное можно, но увы, ничего об этом не знаю. Может быть вы намекнете, как это сделать?

ну в броузером например просмотреть ваш урл который вы на клиенте передаете в вызов new YMaps.YMapsML('_этот_урл_')

не понимаю, что значит этот адрес, но если его вставить в браузер, то будет "страница не найдена".

а вот если запустить мой php файл (код которого я привела), выводит: Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Очевидно YMapsML у меня не создается.

Понятно, я почему-то подумал что вам Яндекс ошибкой отвечает. Тут я ничем помочь не могу (у меня нет вашей БД), нужно дебажить ваше приложение и проверять где происходит ошибка.

Еще можно попробовать поискать текст ошибки в интернетах

Та ошибка у меня вроде прошла, теперь другая "Invalid xml document". видимо YMapsML сгенерировался, но я так и не поняла, как его вытащить и что значит запросить по http. а Вы можете попробовать его получить? что для этого нужно?

попробуйте проверить результат с помощью xmllint

charset должен быть без апострофов

 

Content-Type: text/html; charset=utf-8