![](/img/trans.png)
[英]SyntaxError: Unexpected token < in JSON at position 0” error in AJAX
[英]SyntaxError: Unexpected token < in JSON at position 0 ajax php
我正在使用 PHP 和 Ajax 构建网站。 我无法获取数据。 我经常收到“SyntaxError: Unexpected token < in JSON at position 0” 但是,数据已成功发送到我的数据库,并且网络中没有错误。
Ajax 文件:
document.getElementById("btnSendPrivateMessage").addEventListener("click", function (e) {
e.preventDefault();
let chatId = this.dataset.chatid;
let text = document.querySelector('#privateMessageText').value;
console.log(chatId);
console.log(text);
//sent to DB
let formData = new FormData();
formData.append("text_message", text);
formData.append("chat_id", chatId);
fetch("ajax/saveMessage.php", {
method: "POST",
body: formData
})
.then(response => response.json())
.then(result => {
console.log("Success:", result);
})
.catch(error => {
console.error("Error:", error);
});
});
带有 json_encode 的 PHP 文件
<?php
require("../classes/Db.class.php");
require("../classes/ChatPrivateMessage.class.php");
require("../datetime.php");
session_start();
if(!empty($_POST)){
header("Content-type: application/json");
$m = new ChatPrivateMessage();
$m->setChatId($_POST['chat_id']);
$m->setText($_POST['text_message']);
$m->setUser1($_SESSION['user_id']);
$m->setDate(getTime());
$textM = htmlspecialchars($m->getText()) ;
$m->saveMessage();
$response = [
"status" => "success",
"body" => $textM,
"message" => "something"
];
header("Content-type:application/json");
echo json_encode($response);
};
?>
似乎服务器没有响应 JSON 但 HTML (也许它响应 HTML 页面描述发生的错误)。 检查后端响应到底是什么。
想查看最新的朋友,如果你正在处理代码的页面上有任何HTML代码信息,它会读取从ajax发送的信息但返回错误。 因此,处理后的页面上不应有任何 HTML 代码。 否则你会得到一个错误。 请注意,该页面纯粹是 php 代码。 这样我的问题就解决了。 它非常简单,需要注意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.