我在读取响应的键时遇到问题,然后在出现错误时输出消息。
如果没有错误,我可以输出"Data says: {"msg":"I am BB"}"
.
但是当我将其更改为 true 时,我似乎无法输出“错误说:{“errmsg”:“Error_BB”}”。问题是我很难阅读密钥。
主文件
<script type="text/javascript">
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
try
{
xmlhttp.open("Get", "testBB.php?", true);
xmlhttp.send();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var response = (xmlhttp.responseText);
console.log('obtained:'+response);
var keys=[];
for(var key in response)
keys.push(key);
console.log(keys[0].value);
//var key = Object.getOwnPropertyNames(data);
//console.log(key);
if (keys[0].value == "errmsg")// check if msg any errmsg {
console.log('threw a new error');
throw new Error("Error says: "+response);
} else {
console.log('Data says: '+response);
alert("Data says: "+response);
}
}
}
}
catch(e) {
alert(e);
}
</script>
测试BB.php
<?php
try {
if(true) {
throw new Exception("Error_BB",1);
$firephp->error('Error_BB');
} else {
$ans = json_encode(array("msg"=>"I am BB"));
echo $ans;
$firephp->warn($ans);
}
}
catch(exception $e) {
echo json_encode(array("errmsg"=>$e->getMessage()));
}
?>
请指教