簡體   English   中英

對PHP的Ajax調用僅返回“狀態200 OK”,但沒有包含數據庫結果的數組?

[英]Ajax call to PHP only returns “status 200 OK” but no array with database results?

我對使用PDO連接到mysql的php文件進行AJAX調用,並將結果打印到控制台,但顯示的唯一結果是:

Object {readyState: 4, responseText: "", status: 200, statusText: "OK"}

相同的調用適用於msqli,並顯示帶有結果的json,我在做什么錯?

這是代碼:

自定義js:

 /*eslint-env jquery, browser*/
$(document).ready(function(){

$("#botono").click(function(){

    $.ajax({
        type: 'GET',
        url: 'phpf/retraerClientes.php',
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: function(response) {
            console.log(response);
        },
        error: function(error) {
            console.log(error);
        }
    });

 });

});

PHP:

ini_set('display_errors', 1); 
error_reporting(E_ALL);

define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); 
if(!IS_AJAX) {die('');}

$configs = include('config.php');

 try{

$conn = new      PDO("mysql:host=".$configs["host"].";dbname=".$configs["database"],$configs["use    rname"],$configs["password"]);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "SELECT * FROM prueba";
$results = $conn->query($sql)->fetchAll(PDO::FETCH_ASSOC);
$jsonFinal = json_encode($results);
echo $jsonFinal;

}catch(PDOException $ex){
    echo 'Connection With Database Failed: '.$ex->getMessage();
}

更新:我找到了答案:

$accents = $conn->query("SET NAMES 'utf8'"); 

缺少該行,我的記錄帶有重音,使最終的json損壞並產生了誤報

如我所見,您需要在PHP中執行查詢:

ini_set('display_errors', 1); 
error_reporting(E_ALL);

define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); 
if(!IS_AJAX) {die('');}

$configs = include('config.php');

 try{

$conn = new      PDO("mysql:host=".$configs["host"].";dbname=".$configs["database"],$configs["use    rname"],$configs["password"]);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "SELECT * FROM prueba";
$results = $conn->prepare($sql)->execute()->fetchAll(PDO::FETCH_ASSOC);
$jsonFinal = json_encode($results);
echo $jsonFinal;

}catch(PDOException $ex){
    echo 'Connection With Database Failed: '.$ex->getMessage();
}

http://php.net/manual/es/pdostatement.fetchall.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM