Titel umgeschrieben in: Fehler: „SyntaxError: „' ist kein zulässiges JSON-Format'
P粉716228245
2023-08-22 17:53:58
<p>Ich habe eine Frage zum folgenden Code. Die Ausgabe von <em>console.log</em>
<p>Die URL, die ich über eine JavaScript-Ajax-Anfrage angefordert habe, war „login.php“: </p>
<pre class="brush:php;toolbar:false;"><?php include('init.php');
Verwenden Sie LoginLoginService;
#include(__DIR__.'/Login/LoginService.php');
global $pdo;
session_start();
$username = $_POST['username'];
$pass = $_POST['password'];
if (!empty($username)) {
$test = new LoginService();
$user = $test->getUsersLogin($username);
if (!empty($user) && $user[0]['login'] == $username) {
$json = json_encode(array("success" => 1));
echo $json;
} anders {
$json = json_encode(array("success" => 0));
echo $json;
}
}
?></pre>
<p>Meine JavaScript-Ajax-Anfrage:</p>
<pre class="brush:php;toolbar:false;">$(() => {
$('.login-form').on('submit', function (e) {
e.preventDefault();
$.ajax({
Typ: „POST“,
Datentyp: „json“,
Zeitüberschreitung: 500,
URL: '/src/login.php',
Daten: $(this).serialize(),
Erfolg: (Daten) =>
versuchen {
var jso = JSON.parse(data);
console.log(jso);
} fangen (e) {
console.log(e);
falsch zurückgeben;
}
},
Fehler: (Daten) =>
console.log(JSON.parse(data));
}
});
});
});</pre>
<p>Warum ist die Antwort von PHP auf <code>{"success":1}</code> falsch? was ist das Problem? </p>
<blockquote>
<p>SyntaxError: „[object Object]“ ist kein gültiges JSON</p>
</blockquote><p><br /></p>
尝试这样做以避免出现此错误:
如果你写了
dataType: "json"
,那么jQuery会在进入"success"函数之前自动将你的响应解析为JSON。这在jQuery的$.ajax
文档中有详细描述。因此,
data
已经是一个对象。你不能将一个对象传递给JSON.parse()
- 它需要一个字符串。所以,不需要
你可以直接写