Не удалось сравнить возвращаемое значение php в Ajax - PullRequest
0 голосов
/ 05 октября 2018

У меня проблема с Ajax / PHP.

Пример:

Мой Jquery

//LOGIN-----------------------------

$('#login').click(function() {

$username = $('#username').val();
$password = $('#password').val();

 $.ajax({
  type: "POST",
  url: "../php/ajax.php",
  data: {
        action: "login", 
        username: $username, 
        password: $password
        },
  success: function(data)
  {
    if (data === 'login') {
        window.location = '../www/master.php';
    }
    else {
        alert(data);
    }
  }
  });
});  

Это часть моего получения PHP:

if (isset($_POST['action'])) {
    switch ($_POST['action']) {
        case 'login':
            if($db->Login($_POST['username'], $_POST['password'])){
                echo 'login';
            }
            break;
   }
}

Когда я пытаюсь войти в систему, предупреждение выдает мне «логин» во всплывающем окне.Таким образом, кажется, что все работает, и PHP отправляет «логин» обратно в Ajax, но вместо того, чтобы принять его и перенаправить пользователя, он думает, что что-то не так, и вместо этого запускает else-заявление.

ПоКстати, соединение работает, когда я попытался вместо этого вставить INSERT в запрос, записи отображаются в БД, проблема с Ajax все еще была.

Есть идеи?

ВидС уважением,

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Вероятно, есть пробел в ответе AJAX.попробуйте обрезать строку перед сравнением:

if (data.trim() == "login")
0 голосов
/ 05 октября 2018

Попробуйте понизить строгий оператор === до стандартного == оператора.

Вы должны проверить тип возвращаемых данных:

console.log(typeof data);

и использовать только оператор строгого сравнения после вы уверены в том, какие данные выобрабатывают.

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