$.ajax({
url: '../ajax/deletestudent.php',
type: 'POST',
dataType: "json",
data: formData,
processData: false, // tell jQuery not to process the data
contentType: false, // tell jQuery not to set contentType
success: function(data) {
console.log(data);
alert(data);
window.location.reload(true);
},
error: function(data) {
alert(data); // Optional
window.location = '../pages/studentdata.php';
}
});
$deletedstudent = "Deleted";
echo json_encode(array(
'message' => $deletedstudent
));
我上面有这个ajax和来自php文件的回声。从ajax我有一个alert
和一个console.log
他们都使用数据作为参数。我的问题是为什么在console.log中输出为Object {message: "Deleted."}
,但在警报中输出为[object Object]
。但他们都使用相同的参数。我期待他们两个都会返回Deleted.
。为什么会发生这种想法?
答案 0 :(得分:2)
当您将某些内容记录到控制台时,控制台会提供比警报更详细的输出。看起来你真的想做alert(data.message)
。
答案 1 :(得分:2)
基本答案: console.log
很聪明,但alert
并不聪明。
更详细的回答
console.log
使用它的属性和(取决于您使用的浏览器)记录对象的其他有用信息(例如调用console.log
的行)。
alert
接受传入的任何内容并在其上运行toString()
举个例子:
var myObj = {
foo: 'bar',
xxx: 'yyy'
};
console.log
它应该为您提供具有所有属性的对象,如下图所示:
alert
将为您提供toString
字符串[object Object]
的对象。
注意: 您toString
的任何对象都将成为[object Object]
。