ajax GET-php的结果未通过


ajax GET - result from php not passing through

我好几天都在理头发了。基本上,我使用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的警报(数据)不起作用。数据为空。

我真的不明白为什么。我可以听听你的意见/建议吗?

感谢

$.ajax期望JSON响应,但您使用的JSON_encode会将输出中的"success"打印为"text/html",而不是您想要的"application/JSON"。

必须使用header函数才能得到"application/json"响应:

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