javascript - 具有多个返回值的 Javascript 和 PHP ajax 调用返回未定义
问题描述
我有以下代码,我正在尝试使用它进行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
有人知道我在警报部分哪里出错了吗?
解决方案
data
实际上是一个字符串,'{"error":"Error: Table 'db.tutorials' doesn't exist"}'
. 您可以使用以下方法将其转换为对象JSON.parse
:
data = JSON.parse(data);
或者,指定
dataType : "json"
到您的 ajax 调用,它将在收到时自动转换(请参阅手册)。
推荐阅读
- c# - ASP.NET 6 + Identity + Sqlite,services.AddDbContext() 怎么样?
- java - Java java.io.IOException:HTTP/1.1 标头解析器未收到任何字节
- javascript - 无法使用 php 将表单用户输入发送到电子邮件?
- node.js - 如何上传 MERN 文件夹中的图片?
- python-3.x - 我正在尝试使用 graphics.py 执行边界填充算法。是否有任何适当的方法来获取和放置像素颜色?
- wso2 - WSO2 API Manager - PizzaShack 网站在登录后给出 HTTP 500 内部错误
- amazon-web-services - 在 Route53 和 CloudFront 中将 www 重定向到非 www
- c# - 是否可以使用属性扩展 JsonProperty 属性类以影响不同的序列化?
- python - 使用 cv2 检测对比字体上的球
- python - SQLAlchemy - 使用一个查询列出两个表中的数据