Jon*_*chs 14 javascript php ajax jquery json
我对以下代码有问题。console.log输出为:
我通过 JavaScript Ajax 请求请求的 URL 是“login.php”:
<?php include('init.php');
use Login\LoginService;
#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;
} else {
$json = json_encode(array("success" => 0));
echo $json;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我通过 JavaScript 发出的 Ajax 请求:
$(() => {
$('.login-form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: "POST",
dataType: "json",
timeout: 500,
url: '/src/login.php',
data: $(this).serialize(),
success: (data) => {
try {
var jso = JSON.parse(data);
console.log(jso);
} catch (e) {
console.log(e);
return false;
}
},
error: (data) => {
console.log(JSON.parse(data));
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
为什么 PHP 的响应{"success":1}不正确?问题是什么?
语法错误:“[object Object]”不是有效的 JSON
ADy*_*son 28
如果你这样写,那么 jQuery 会在执行“成功”函数之前dataType: "json"自动将你的响应解析为 JSON 。jQuery文档对此进行了描述。$.ajax
因此,已经data是一个对象了。您不能将对象传递给JSON.parse()- 它需要一个字符串。
代替
var jso = JSON.parse(data); console.log(jso);
Run Code Online (Sandbox Code Playgroud)
你可以写
console.log(data);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85301 次 |
| 最近记录: |