Tajuk ditulis semula kepada: Ralat: "SyntaxError: """ bukan format JSON yang sah"
P粉716228245
2023-08-22 17:53:58
<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>
Cuba ini untuk mengelakkan ralat ini:
Jika anda menulis
Jadi,dataType: "json"
,那么jQuery会在进入"success"函数之前自动将你的响应解析为JSON。这在jQuery的$.ajax
ada penerangan terperinci dalam dokumen.- ia memerlukan rentetan.
Jadi, tidak perludata
已经是一个对象。你不能将一个对象传递给JSON.parse()