从JSON检索数据时发生Ajax错误


Ajax error when retrieving data from JSON

我正试图将数据发送到我的PHP文件,该文件在DB中插入值(这一部分可以),然后将JSON编码的数据发送回JavaScript文件,以便我可以显示它们,但它不起作用。我不知道到底出了什么问题。我已经看了很多有效的例子,但我的例子不起作用。

$.ajax({
    type: "POST",
    dataType: "json",
    url: "requete.php", 
    data: data,
    success: function(data) {
        if (data.success == true) {
            alert(data.message);
        }
    },
    error: function(errorThrown) {
       alert('error');
    }
});

数据被正确地发送到PHP并插入到DB中,但以下json不会显示:

if (isset($_POST['action']) && $_POST['action'] == 'add_attribution') {

 $nom = $_POST['nom'];
 $date = $_POST['date'];
 $montant = (int)$_POST['montant'];
 $type = utf8_decode($_POST['type']); 
    $sql = "insert into bo_depenses (montant,date,personne,description,carte) values('$montant','$date','','$nom','$type')";
    $result = mysql_query($sql);
    $data = array('success'=> true,'message'=>'Success message: hooray!');
    echo json_encode($data);

使用此代码,控制台返回"Object",其中包含发送到PHP/MySql(??)的数据

感谢您的帮助

UPDATE:我通过输入错误获得了json结果

  var obj = JSON.stringify(data)
  alert(obj);

事实证明,它显示了我发送到PHP脚本(插入DB)的第一个值,而不是我JSON编码的值。。。为什么?

尝试使用

if ($.trim(data.success) == 1)

有时我也会遇到类似的情况,我使用这个解决了这个问题

header("content-type: application/json");置于echo之前。