无法获取所有POST Success xml数据

时间:2013-01-04 17:33:18

标签: jquery ajax

我正在尝试获取我的xml标记结果并将它们加载到地图上,但是当我发出警报时,我在变量中得到的结果是:

  

加载数据:[object XMLDocument]

这就是我的代码:

function SendData() {

//get data from inputs

            $.ajax({
                type: "POST",
                url: "MapSearchxml.php",
                data: {
                    dataFromDate: FromDate,
                    //some more data
                    dataHasPatio: HasPatio
                },
                beforeSend: function (html) { // this happens before actual call
                },
                success: function (html) { // this happens after we get results

                alert("Data Loaded: " + html);

                }
            });
}

在Firebug中,帖子回复如下:

  

<markers><marker id="1" lat="48.153938" lng="17.108459" /></markers>

我尝试将数据类型设置为xml,如下所示:

                success: function (html) { // this happens after we get results
                alert("Data Loaded: " + html);
                }, 
                dataType: 'xml'
            });
}

但是没有发生任何变化。

这是我的xml php代码:

$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}


header("Content-type: text/xml");

echo '<markers>';

while ($row = @mysql_fetch_assoc($result)){
  echo '<marker ';
  echo 'id="' . parseToXML($row['ID']) . '" ';
  echo 'lat="' . parseToXML($row['LAT']) . '" ';
  echo 'lng="' . parseToXML($row['LNG']) . '" ';
  echo '/>';
}

echo '</markers>';

1 个答案:

答案 0 :(得分:1)

这是浏览器在将XML对象附加到文本字符串并在警报中显示数据时处理XML对象的方式。你的ajax调用看起来像是在工作。

您可以尝试更改:

    success: function (html) { // this happens after we get results
       alert("Data Loaded: " + html);
    }, 

只是:

    success: function (html) { // this happens after we get results
       console.log(html);
    }, 

并在JavaScript控制台中查看该对象。 或者:

    success: function (html) { // this happens after we get results
        var xmlString = (new XMLSerializer()).serializeToString(html);
        alert("Data loaded: " + xmlString);
    },