如果您在使用 AJAX 和 PHP 返回 JSON 数据的过程中遇到异常,您可以按照以下步骤进行解决:
$my_array = array("name" => "John", "age" => 30, "city" => "New York"); echo json_encode($my_array);
$.ajax({ type: "POST", url: "my_php_file.php", data: {name: "John", location: "Boston"}, dataType: "json", success: function(data){ console.log(data.name); console.log(data.age); console.log(data.city); }, error: function(xhr, textStatus, errorThrown){ console.log(xhr); } });
在上面的代码中,如果 AJAX 请求成功,则会在控制台输出 John、30 和 New York。如果异常发生,则会在控制台输出相关错误信息。
try { $db = new PDO("mysql:host=localhost;dbname=my_database", "username", "password"); $stmt = $db->prepare("SELECT * FROM my_table WHERE id = ?"); $stmt->execute(array(1)); $result = $stmt->fetch(PDO::FETCH_ASSOC); echo json_encode($result); } catch (PDOException $e) { echo json_encode(array("error" => $e->getMessage())); }
在上面的代码中,如果发生 PDOException 异常,则会返回一个 JSON 对象,其中包含了异常信息。在 AJAX 代码中,您可以使用以下代码处理这个 JSON 对象:
$.ajax({ type: "POST", url: "my_php_file.php", data: {id: 1}, dataType: "json", success: function(data){ if (data.hasOwnProperty("error")) { console.log(data.error); } else { console.log(data.name); console.log(data.age); console.log(data.city); } }, error: function(xhr, textStatus, errorThrown){ console.log(xhr); } });
在上面的代码中,如果返回的 JSON 对象中包含了 error 属性,则说明发生了异常,您可以在控制台输出相关错误信息。如果没有发生异常,则继续输出相关数据。