javascript - 总是收到错误:pushJsonData 中的 parsererror:SyntaxError:我的脚本中 JSON 输入 [object Object] 意外结束
问题描述
我总是在 pushJsonData 中收到 Parser 错误,我不知道为什么。
我首先只使用用户值对其进行了测试,它工作正常,但是当我尝试比用户返回 mor 时,我收到以下错误:
SyntaxError: Unexpected end of JSON input [object Object]
我的 JavaScript 代码:
$('#Login').click(function() {
var user = $("#user").val();
$.ajax({
url: "src/ajax.php",
type: "POST",
data: { ACTION : "checkUser", USER: user},
dataType: "json",
success: function(data) {
var user = data.user;
$('#testUser').text("Hallo " + user);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " in pushJsonData: " + errorThrown + " " + jqXHR);
}
});
});
我的PHP代码:
if($_POST['ACTION'] == "checkUser") {
$checkUser = $_POST['USER'];
$sql = $db->query("SELECT * FROM fm_user WHERE user = '".$checkUser."' LIMIT 1");
$getUser = $sql->fetch_assoc();
$resultArray = array(
"user" => $getUser['user'],
"isadmin" => $getUser['isadmin'],
"user_data" => $getUser['user_data']
);
$result = json_encode($resultArray);
}
解决方案
你没有输出任何东西。但是,我不想因为错字而将其关闭为题外话,我想指出您的代码存在一些问题,这些问题不安全且效率低下。始终始终使用准备好的语句,并且无需浪费代码将数组元素放入数组中。这样的事情应该会更好:
<?php
if($_POST['ACTION'] == "checkUser") {
$result = null;
$checkUser = $_POST['USER'];
$stmt = $db->prepare("SELECT user, isadmin, user_data FROM fm_user WHERE user = ? LIMIT 1");
$stmt->bind_param("s", $checkUser);
if ($stmt->execute()) {
$result = $stmt->get_result();
$getUser = $result->fetch_assoc();
$result = $getUser;
}
header("Content-Type: application/json");
echo json_encode($result);
die();
}
未经测试,自从我使用 mysqli 以来已经很长时间了,但它应该可以工作。
推荐阅读
- ios - 更新到最新的 swift 版本后,我得到了错误:没有这样的模块“NewAppName”
- javascript - Javascript appendChild 在页面上滚动用户
- laravel - 如何将一个输入值与 laravel 控制器中的另一个输入值进行比较?
- javascript - 复制到剪贴板并消失消息
- vim - 无法在 vim 内的终端中返回终端模式
- java - JFrame 和 MouseListener 没有正确执行点击的问题
- entity-framework-core - 重用 Where 条件
- android - 不允许到本地主机的 NativeScript Angular 明文 HTTP 流量
- swift - 为什么泛型参数上的 AnyObject 约束不允许将该泛型参数用作约束?
- gpu - GPU 执行“流”与 CPU