Titre réécrit en : Erreur : "SyntaxError : """ n'est pas un format JSON légal"
P粉716228245
P粉716228245 2023-08-22 17:53:58
0
2
495
<p>J'ai une question sur le code suivant. Le résultat de <em>console.log</em> <p>L'URL que j'ai demandée via une requête JavaScript Ajax était "login.php": </p> <pre class="brush:php;toolbar:false;"><?php include('init.php'); utilisez LoginLoginService ; #include(__DIR__.'/Login/LoginService.php'); global $pdo ; session_start(); $nom d'utilisateur = $_POST['nom d'utilisateur']; $pass = $_POST['mot de passe']; si (!empty($nom d'utilisateur)) { $test = nouveau LoginService(); $user = $test->getUsersLogin($username); if (!empty($user) && $user[0]['login'] == $username) { $json = json_encode(array("success" => 1)); echo $json; } autre { $json = json_encode(array("success" => 0)); echo $json; } } ?>≪/pré> <p>Ma requête JavaScript Ajax :</p> <pre class="brush:php;toolbar:false;">$(() => { $('.login-form').on('submit', fonction (e) { e.preventDefault(); $.ajax({ tapez : "POST", Type de données : "json", délai d'attente : 500, URL : '/src/login.php', données : $(this).serialize(), succès : (données) => essayer { var jso = JSON.parse(données); console.log(jso); } attraper (e) { console.log(e); renvoie faux ; } }, erreur : (données) => console.log(JSON.parse(données)); } }); }); });</pré> <p>Pourquoi la réponse de PHP <code>{"success":1}</code> quel est le problème? </p> <blockquote> <p>SyntaxError : "[object Object]" n'est pas un JSON valide</p> </blockquote><p><br /></p>
P粉716228245
P粉716228245

répondre à tous(2)
P粉738248522

Essayez ceci pour éviter cette erreur :

myFunction(data: string) {
  try {
    JSON.parse(data); 
    console.log(data);
  }
   catch (e) {
   console.log(e); 
  }
}
P粉505450505

Si vous écrivez dataType: "json",那么jQuery会在进入"success"函数之前自动将你的响应解析为JSON。这在jQuery的$.ajaxil y a une description détaillée dans le document.

Donc,

- il faut une ficelle. data已经是一个对象。你不能将一个对象传递给JSON.parse()

Donc, pas besoin

var jso = JSON.parse(data); console.log(jso);
Vous pouvez écrire directement

console.log(data);
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal