Почему мое значение данных не равно моей строке? - PullRequest
1 голос
/ 02 февраля 2020

Я использую сделать запрос AJAX, который возвращает данные в текстовом формате. Этот запрос AJAX запросит страницу PHP, которая возвращает либо Success, либо Failed.

Когда я console.log получаю ответ, я получаю Success. Однако когда я сравниваю ее со строкой Success, это говорит мне, что они не имеют одинаковое значение. Почему?

enter image description here

$(document).ready(function() {
  $("#submit").click(function(e) {
    e.preventDefault();

    $.post('verificationConnexionAgence.php', {
      identifiant: $("#identifiant").val(),
      motDePasse: $("#motDePasse").val()
    }, function(data) {
      $str1 = "Success";
      console.log(data);
      console.log($str1);

      if ($str1 == data) {
        console.log("EQUAL");
      } else {
        console.log("NO EQUAL")
      }

      if (data == 'Success') {
        $("#resultat").html("<p>Vous avez été connecté avec succès !</p>");
      } else {
        $("#resultat").html("<p>Erreur lors de la connexion...</p>");
      }
    }, 'text');
  });
});

Спасибо!

1 Ответ

0 голосов
/ 02 февраля 2020

Общей проблемой при возврате ответа в виде открытого текста от вызова AJAX является непреднамеренный пробел, который часто включается и будет означать, что прямое сравнение не удастся. Вы можете видеть, что это проблема здесь, потому что журнал, как показано на вашей картинке, помещает вывод data в новую строку.

Краткосрочное исправление для этого заключается в использовании trim() перед выполнением сравнение для удаления этого пробела:

$.post('verificationConnexionAgence.php', {
  identifiant: $("#identifiant").val(),
  motDePasse: $("#motDePasse").val()
}, function(data) {
  data = data.trim(); // remove the whitespace
  if (data == 'Success') {
    console.log("EQUAL");
    $("#resultat").html("<p>Vous avez été connecté avec succès !</p>");
  } else {
    console.log("NO EQUAL")
    $("#resultat").html("<p>Erreur lors de la connexion...</p>");
  }
}, 'text');

Лучшее решение - вернуть данные в сериализованном формате, например XML или JSON, чтобы пробел не имел отношения к отправленным / полученным значениям. в запросе.

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