【问题标题】:ajax GET - result from php not passing throughajax GET - php的结果没有通过
【发布时间】:2014-11-06 00:10:06
【问题描述】:

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

我真的不知道为什么。我可以听听您的意见/建议吗?

谢谢

【问题讨论】:

  • 你的代码对我有用。你的意思是警报(数据)警报为空?
  • 在php中没有使用的时候,序列化和提交表单有什么用?

标签: php mysql ajax pdo


【解决方案1】:

$.ajax 需要 JSON 响应,但您使用了 json_encode,它将在输出中将“成功”打印为“text/html”而不是您想要的“application/json”。

您必须使用header 函数才能获得“application/json”响应:

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

【讨论】:

    猜你喜欢
    • 2021-04-24
    • 2011-01-25
    • 2018-06-22
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    相关资源
    最近更新 更多