我有以下代码,我正在尝试使用这些代码进行AJAX
调用,该调用可以返回多个值
// Make an ajax call to insert a new row.
// Newer jquery uses done and fail instead of success and error.
$.post("add_row_item.php", {
work_order_id: 1
}).done(function(data) {
// Ajax request was successful.
console.log(data);
// Check if database query produced errors.
if(data.error != "") {
alert('Error trying to add a row - ' + data.error);
}
}).fail(function(xhr, status, error) {
// Ajax request failed.
var errorMessage = xhr.status + ': ' + xhr.statusText;
alert('Error trying to add a row - ' + errorMessage);
});
PHP
代码对返回消息进行如下编码:
echo json_encode(array("error" => "Error: " . mysqli_error($con)));
我在浏览器控制台上得到以下信息:
{"error":"Error: Table 'db.tutorials' doesn't exist"}
但是警报在消息中给了我undefined
:
Error trying to add a row - undefined
有人知道我的警报部分出了什么问题吗?
答案 0 :(得分:3)
data
实际上是一个字符串,'{"error":"Error: Table 'db.tutorials' doesn't exist"}'
。您可以使用JSON.parse
将其转换为对象:
data = JSON.parse(data);
或指定
dataType : "json"
转到您的ajax调用,它将在收到回执后自动转换(请参见manual)。