IE8 и чтение XML через AJAX - PullRequest
       2

IE8 и чтение XML через AJAX

0 голосов
/ 01 апреля 2011

У меня есть локатор магазина, построенный с использованием Google Maps, PHP / Mysql и jQuery здесь: http://tinyurl.com/4w8nwwp

В FF, Safari, Chrome и Opera все отлично.IE7, 8 не может прочитать XML, который динамически генерируется parse_location.php

Код AJAX:

function reloadMap(map, dataString) {
    markersArray = [];
    var infoWindow = new google.maps.InfoWindow({content: "loading...", maxWidth:100});
    var storeListHtml = '<h2>Name <span style="margin-left:252px;">Address</span></h2><ul>';

$.ajax({
    type: "GET",
    url: "parse_location.php",
    data: dataString,

    success: function(text){

        count = -1;


        $(text).find("list").each(function()
        {
            count++;
            if(count == 0)
            {
                var burnsvilleMN = new google.maps.LatLng($(this).attr("lat"),$(this).attr("lng"));
                map.panTo(burnsvilleMN);
            }

            var store = [$(this).attr("name"), $(this).attr("address"), $(this).attr("lat"), $(this).attr("lng"), count];

            var name = $(this).attr("name");
            var address = $(this).attr("address");
            var point = new google.maps.LatLng($(this).attr("lat"),$(this).attr("lng"));
            var html = "<span class='info'><b>" + name + "</b> <br/>" + address + "</span>";
            var image = new google.maps.MarkerImage('images/icon_dot2.png');
            var shadow = new google.maps.MarkerImage('images/icon_dot_shadow.png');
            var marker = new google.maps.Marker({
                map: map,
                position: point,
                icon: image,
                shadow:shadow
                //shadow: icon.shadow
            });

            //markersArray.push(marker);

            storeListHtml += "<li class='store'><a href='javascript:myclick("+count+")'><div class='store-name'>"+name+"</div><div class='store-add'> "+address+"</div></a></li>";


            bindInfoWindow(marker, map, infoWindow, html);
        }); 
        storeListHtml += '</ul>';

        $("#store-list").html(storeListHtml);
    }
});

}

Как вы можете видеть, это включает вызов parse_location.php, получая XML, сгенерированный этим кодом: // раскомментирование следующей строки приводит к тому, что ff, safari et al ничего не показывают.// header ('Content-Type: text / xml; charset = UTF-8');

$responce = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$responce .= "<location>\n"; 
$city = $_GET['city'];
$category = $_GET['category'];

[SQL-запрос здесь]

$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
    $responce .= "<list name=\"".$row["name"]."\" 
            address=\"".$row["street_address"]." ".$row["city"]." ".$row["state"].", ".$row["zip"]."\" 
            lat=\"".$row["lat"]."\" 
            lng=\"".$row["lng"]."\" />";




}



$responce .= "</location>";
$responce8 = utf8_encode($responce);
echo $responce8;

Любые указатели ???

Риши

1 Ответ

0 голосов
/ 01 апреля 2011

Добавьте заголовок Content-Type к вашему php-коду, например так:

header('Content-Type: text/xml'); // Try "application/xml" too

Также может помочь добавление другого заголовка, специфичного для IE:

header('X-Content-Type-Options: nosniff');

Вам нужно сделать этоконечно, перед выводом чего-либо еще, поскольку они являются заголовками .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...