cari

Rumah  >  Soal Jawab  >  teks badan

Tajuk ditulis semula kepada: Ralat: "SyntaxError: """ bukan format JSON yang sah"

<p>Saya ada soalan tentang kod berikut. Keluaran <em>console.log</em> <p>URL yang saya minta melalui permintaan JavaScript Ajax ialah "login.php": </p> <pre class="brush:php;toolbar:false;"><?php include('init.php'); gunakan LoginLoginService; #include(__DIR__.'/Login/LoginService.php'); global $pdo; session_start(); $nama pengguna = $_POST['nama pengguna']; $pass = $_POST['kata laluan']; jika (!kosong($nama pengguna)) { $test = new LoginService(); $user = $test->getUsersLogin($username); if (!empty($user) && $user[0]['login'] == $username) { $json = json_encode(array("berjaya" => 1)); echo $json; } lain { $json = json_encode(array("berjaya" => 0)); echo $json; } } ?></pra> <p>Permintaan Ajax JavaScript saya:</p> <pre class="brush:php;toolbar:false;">$(() ==> { $('.login-form').on('submit', fungsi (e) { e.preventDefault(); $.ajax({ taip: "POST", dataType: "json", tamat masa: 500, url: '/src/login.php', data: $(this).serialize(), kejayaan: (data) => cuba { var jso = JSON.parse(data); console.log(jso); } tangkap (e) { console.log(e); kembali palsu; } }, ralat: (data) => console.log(JSON.parse(data)); } }); }); });</pre> <p>Mengapa jawapan PHP tentang <code>{"success":1}</code> apa masalahnya? </p> <blockquote> <p>SyntaxError: "[objek Objek]" tidak sah JSON</p> </blockquote><p><br /></p>
P粉716228245P粉716228245462 hari yang lalu484

membalas semua(2)saya akan balas

  • P粉738248522

    P粉7382485222023-08-23 11:56:34

    Cuba ini untuk mengelakkan ralat ini:

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

    balas
    0
  • P粉505450505

    P粉5054505052023-08-23 11:42:19

    Jika anda menulis dataType: "json",那么jQuery会在进入"success"函数之前自动将你的响应解析为JSON。这在jQuery的$.ajaxada penerangan terperinci dalam dokumen.

    Jadi,

    - ia memerlukan rentetan. data已经是一个对象。你不能将一个对象传递给JSON.parse()

    Jadi, tidak perlu

    var jso = JSON.parse(data); console.log(jso);

    Anda boleh menulis terus

    console.log(data);

    balas
    0
  • Batalbalas