我使用ajax运行MySQL查询和echo
json_encode
结果,这样我就可以得到一个JSON对象:
$.ajax({
url: phpUrl,
data: command,
dataType: 'json',
async: true,
success: function(jsonData) {
//XXX
}
JSON对象应该是:{cols: [XXXX], rows: [XXXX]}
。
有时MySQL查询会出现错误信息,因此返回的JSON对象无效。如何确定返回的JSON对象是否有效?
修改
在http://api.jquery.com/jQuery.ajax/中,它说“以严格的方式解析JSON数据;拒绝任何格式错误的JSON并抛出解析错误”。如何处理解析错误?
答案 0 :(得分:1)
如果MySQL抛出错误,只需返回某种解释它的JSON,例如:
// do mysql query
if (mysql_errno()) {
echo json_encode(array(
'error' => true,
'errorno' => mysql_errno(),
'message' => mysql_error()
));
} else {
//echo original json
}
然后你的ajax函数只查找'error'键,如果它存在并且尝试报告错误。
答案 1 :(得分:1)
这样的事情应该有效:
$.ajax({
url: phpUrl,
data: command,
dataType: 'json',
async: true,
success: function(jsonData) {
//XXX
},
error:function(xhr,err){
if (err=='parsererror') alert('invalid json');
}
);