所以我在一个我必须实现聊天的网站上工作,目前整个事情都在localhost上运行。 我收到此错误:
SyntaxError:JSON输入的意外结束
并且无法弄清楚原因。我用谷歌搜索了一下,但无法找到答案,这确实有效。实际上我昨天在另一台计算机上做了这个并且工作得很好,但今天它不会工作,我无法弄清楚原因。
谢谢你的答案。
$(function() {
updateChat("updateChat", null);
$(".chat-form").submit(function(event) {
event.preventDefault();
if ($(".chat-form input").val() != "") {
updateChat("sendMessage", $(".chat-form input").val());
}
});
setInterval(function() {
updateChat("updateChat", null);
}, 3000);
function updateChat(method, message) {
$.ajax({
type: "POST",
url: "action/chat.php",
data: {
function: method,
message: message
},
dataType: "json",
success: function(data) {
console.log(data);
},
error: function (request, status, error) {
console.log(error);
}
})
}
})
答案 0 :(得分:2)
很可能在您的PHP代码中显示错误或警告,并且因为您只期望json,这会导致语法错误。
有几种方法可以找出正在发生的事情:
dataType
更改为html
,您会看到console.log(data)
答案 1 :(得分:1)
由于后端php函数未返回应有的响应,因此出现此错误。它什么也没返回。我应该返回响应的父函数正在调用一个WAS返回响应的子函数,但是父函数没有将那个子返回传递给ajax调用。
答案 2 :(得分:-1)
这些类型错误的另一个可能的罪魁祸首可能是后端(服务器端)脚本中不正确的 python “shebang”。
在我的特殊情况下,我通过 Apache Web 服务器对 python cgi 脚本进行了 ajax 调用,但在前端调试工具中找不到更具描述性的错误消息。但是,Apache 日志表明后端脚本在导入其中一个 python 脚本时出现问题,因为解释器无法识别它。在检查了该后端脚本的“shebang”之后,它确实指定了错误的解释器,因为我刚刚复制了一个模板文件而忘记修改它..
答案 3 :(得分:-1)
对于 MVC 控制器,您必须返回一个有效的 JsON
return new JsonResult() { Data = new { test = 123 } };
代替
return new JsonResult();