使用$.ajax
时,我在使用XML dataype时遇到了一些困难。
我创建了一个PHP文件(test.php
):
<script type="text/javascript" src="js/jquery.min.js"></script>
<?php
//this code will show some xml tag when there is an ajax call
if(isset($_REQUEST['t']) && $_REQUEST['t']==1){
echo "<result >";
echo "<info>Tristan Jun</info>";
echo "<age>22</age>";
echo "</result>";
return;
}
?>
<script>
$(document).ready(function(){
$('#testing').click(function(){
alert('uuuuuuu');
var content = $.ajax({
type:"GET",
url :"test.php",
data:'t=1',
dataType:"**html**",
async:false,
success:function(content){
cont = $(content);
inf = cont.find('info').text();
age = cont.find('agel').text();
//alert('inf');
$('#show1').html(inf);
$('#show2').html(total);
},
error: function(){
alert('THERE'S AN ERROR');
}
}).**responseHTML**;
});//end of click
});//end of ready
</script>
<a id="testing" href="#">TEST</a>
<div id="show1"></div>
<div id="show2" style="background-color:#069"></div>
以下是我对此示例的说明:
<div>
,#show1
} {/ li>中的#show2
下显示每个标记的文字
以上示例在$.ajax
中使用dataType HTML,它适用于此类型。但是,当我尝试使用dataType XML时,它没有显示任何内容。
所以,我希望你们能给我一些关于这个问题的想法或一些参考。
答案 0 :(得分:0)
如果您发布的整个代码是test.php的内容,则响应不能是有效的xml。
输出将以<result/>
结尾,但以<script/>
开头。
(XML需要有一个根元素。)
我建议使用output_buffer,如果请求来自ajax,则在回显xml之前丢弃缓冲区的内容。(或者只是将PHP代码放在顶部)