28

2008.5

今天在学《AJAX and PHP》的过程中,用XMLHttpRequest就是获得不到responseXML值,但可以获得responseText值。在地址栏中直接打开目标响应的PHP文件,文件代码如下:

<?php
    @header('Content-Type: text/xml');
    echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
    echo '<response>';
    $name = $_GET['name'];
    $userNames = array('CRISTIAN','BOGDAN','FILIP','MIHAI','YODA','你好');
    if(in_array(strtoupper($name),$userNames))
    echo 'Hello,master ' . urldecode($name) . '!';
    else if(trim($name)=='')
    echo 'Stranger,please tell me your name!';
    else
    echo urldecode($name) . ',T don\'t know you!';
    echo '</response>';
?>

发现浏览器用HTML的形式显示文件的,但应该是用XML的形式显示此文件的。忽然记得以前好像也发生过类似的错误,解决方法是把PHP文件保存成无BOM的UTF8格式的,修改后果然都正常了!

上网查了一下,如果把PHP保存成带有BOM的UTF8文件,会因为编码方式对于BOM不是强制的而出现不同的处理方式,所以最好把文件保存成无BOM的UTF8格式的。而目前windows系统中对于保存文件的处理方式默认情况下都会加上BOM,可以使用些高级编辑器修改文件,如UltraEdit、SciTE等。

, , ,
| |
0 Response
发表评论
  • 昵称 [注册]
  • 密码 游客无需密码
  • 网址
  • 电邮
打开HTML 打开UBB 打开表情 隐藏 记住我