ajax数据类型json jquery成功

时间:2015-02-27 02:33:45

标签: javascript php jquery ajax json

$.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.。为什么会发生这种想法?

2 个答案:

答案 0 :(得分:2)

当您将某些内容记录到控制台时,控制台会提供比警报更详细的输出。看起来你真的想做alert(data.message)

答案 1 :(得分:2)

基本答案: console.log很聪明,但alert并不聪明。


更详细的回答

console.log使用它的属性和(取决于您使用的浏览器)记录对象的其他有用信息(例如调用console.log的行)。

另一方面,

alert接受传入的任何内容并在其上运行toString()

举个例子:

var myObj = {
    foo: 'bar',
    xxx: 'yyy'
};

console.log它应该为您提供具有所有属性的对象,如下图所示:

console.log of myObj

alert将为您提供toString字符串[object Object]的对象。

注意: toString的任何对象都将成为[object Object]