Всегда получать сообщение об ошибке: parsererror в pushJsonData: SyntaxError: неожиданный конец ввода JSON [объект объекта] в моем скрипте - PullRequest
0 голосов
/ 22 апреля 2019

Я всегда получаю сообщение об ошибке Parser в pushJsonData и не знаю почему.

Сначала я проверил его, используя только пользовательское значение, и оно отлично работает, но когда я пытаюсь вернуться назад, чем пользователь, я получаю сообщение об ошибке ниже:

SyntaxError: Unexpected end of JSON input [object Object]

Мой код JavaScript:

$('#Login').click(function() {
    var user = $("#user").val();
    $.ajax({
        url: "src/ajax.php",
        type: "POST",
        data: { ACTION : "checkUser", USER: user},
        dataType: "json",
        success: function(data)  {
            var user = data.user;
            $('#testUser').text("Hallo " + user);
        },

        error: function(jqXHR, textStatus, errorThrown) {
            alert(textStatus + " in pushJsonData: " + errorThrown + " " + jqXHR);
        }
    });
});

Мой код PHP:

if($_POST['ACTION'] == "checkUser") {
    $checkUser      = $_POST['USER'];
    $sql            = $db->query("SELECT * FROM fm_user WHERE user = '".$checkUser."' LIMIT 1");
    $getUser        = $sql->fetch_assoc();

    $resultArray    = array(
                        "user" => $getUser['user'],
                        "isadmin" => $getUser['isadmin'],
                        "user_data" => $getUser['user_data']
                    );

    $result = json_encode($resultArray);
}

1 Ответ

0 голосов
/ 22 апреля 2019

Вы ничего не выводите. Но вместо того, чтобы закрыть это как не по теме из-за опечатки, я хотел бы указать на некоторые проблемы с вашим кодом, которые небезопасны и неэффективны. Всегда всегда используйте подготовленные операторы, и нет необходимости тратить код, помещая элементы массива в массив. Примерно так должно работать лучше:

<?php
if($_POST['ACTION'] == "checkUser") {
    $result = null;
    $checkUser = $_POST['USER'];
    $stmt = $db->prepare("SELECT user, isadmin, user_data FROM fm_user WHERE user = ? LIMIT 1");
    $stmt->bind_param("s", $checkUser);
    if ($stmt->execute()) {
        $result = $stmt->get_result();
        $getUser = $result->fetch_assoc();

        $result = $getUser;
    }
    header("Content-Type: application/json");
    echo json_encode($result);
    die();
}

Не проверено, и прошло уже много времени с тех пор, как я использовал mysqli, но оно должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...