AngularJS и PHP json_encode

0

У меня есть простой код здесь, который использует json_encode и выдает ответ в PHP. Вот мой код:

app.js

$scope.login = function() {
        var data = {
            username: $scope.login.username,
            password: $scope.login.password
        };

        $http.post('endpoints/login.php', data)
        .success(function(response) {
            if(response.success == "true") {
                alert('nice');
            } else {
                alert('not nice');
            }
        })
        .error(function(response) {
            console.log(response);
        });

    };

login.php

$data = json_decode(file_get_contents("php://input"));
$stmt = $db->prepare('SELECT * FROM accounts WHERE username=? AND password=?');
$stmt->execute(array($data->username, $data->password));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if($row > 0)
{
    $response = [
        "success" => true
    ];

    echo json_encode($response);
}
else
{
    $response = [
        "success" => false
    ];

    echo json_encode($response);
}

Он работает отлично, но эта часть не работает:

if(response.success == "true") {
  alert('nice');
} else {
  alert('not nice');
}

Когда я добавляю console.log(response) я получаю Object {success: true} or Object {success: false}.

Я что-то упустил? Спасибо.

  • 0
    console.log(response) и ваш ответ может стать ясным.
  • 0
    @KevinB Я получаю истину или ложь, это работает правильно, но я не могу заставить оператор if работать
Показать ещё 5 комментариев
Теги:

1 ответ

2

Вам нужно использовать логическое выражение в инструкции if, а не строку, потому что true != "true". Измените оператор if следующим образом:

if(response.success === true) {
  • 0
    Вот и ты. Я сделал это, но вместо этого я использовал «true», что делает его также не работает. Спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню