簡體   English   中英

SyntaxError: Unexpected token < in JSON at position 0 ajax ZE1BFD762321E409CEE4840

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM