ajax GET - 来自php的结果不通过

时间:2014-09-11 22:05:08

标签: php mysql ajax pdo

我现在拉头发好几天了。基本上,我使用ajax来执行一些mysql(PDO)查询:

AJAX

    $.ajax({
    type: 'GET',
    url: 'update_query.php',
    data: $('#new_form').serialize(),
    dataType: 'json',
    success: function(data) {alert(data);}
    });

update_query.php

<?php
require("connection.php"); //contains pwd
try {
    $connection = new PDO( $dns, $utilisateur, $motDePasse);
    $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $connection->prepare("UPDATE XXX");
    $stmt->execute();
    echo json_encode('SUCCESS');
    $connection = null;
}
catch (Exception $e) {
    echo json_encode('ERROR:' . $e->getMessage());
    exit;
}
?>

php查询正常,因为我可以在我的数据库中看到结果。但是,来自AJAX的警报(数据)不起作用。数据是空的。

我真的无法弄清楚原因。我可以提出您的意见/建议吗?

由于

1 个答案:

答案 0 :(得分:3)

$ .ajax期望一个JSON响应,但你使用了json_encode来打印&#34;成功&#34;输出为&#34; text / html&#34;不是你想要的&#34; application / json&#34;。

您必须使用header函数才能拥有&#34; application / json&#34;响应:

header('Content-type: application/json');