Ошибка синтаксиса: неожиданный токен <in JSON в позиции 0 ajax php - PullRequest
0 голосов
/ 03 мая 2020

Я создаю сайт, используя PHP & Ajax. Я не могу получить данные. Я постоянно получаю сообщение «SyntaxError: неожиданный токен <в JSON в позиции 0». Однако данные успешно отправляются в мою базу данных, и в сети нет ошибок. </p>

Ajax file:

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);
    });
});

PHP файл с json_encode

<?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);
};  
?>

1 Ответ

0 голосов
/ 03 мая 2020

Похоже, что сервер отвечает не JSON, а HTML (возможно, он отвечает страницей HTML с описанием возникшей ошибки). Проверьте, что именно является ответом сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...