|
|
几天前程序还好好的,突然执行错误。
var id = 1; var URL = '/index/ajaxfetcharea'; new Ajax.Request(URL, { method: 'get', evalJSON:true, evalJS:true, parameters:{province: id}, onSuccess: function(transport, json) { var result = transport.responseJSON; var str =''; //调试语句 //alert(transport.responseText); for(var i=0, j=result.length; i<j; i++) { str += ' <a target="_blank" href="http://'+ result[i].a + '.site.com' +'/">'+ result[i].b +'</a>'; } $('id_allarea_li').update(str); } }
这时,把调试语句注释取消,发现输出是
<br />notice:。。。。。<br />[{a:1,b:2}, {a:2,b:3}。。。]
原来,php遇到解析错误但不是致命错误,如果也不关闭php.ini里的错误输出,则php会强行在输出流的最开头处插入错误提示的html代码,而服务端代码并没有致命错误,前几天修改代码时增加了一些功能,说起来,也是没有单元测试的原因啊。
也是一个php常见警告
$a = array();if ($a['b']) { .....}
这样就会警告了,正确的写法是
$a = array();if (array_key_exists('b', $a)) { .....}
就不会警告了。 |
|