Uncaught (в обещании) SyntaxError: Неожиданный токен '<', "<!DOCTYPE"... недействителен JSON, ошибка graphQLClient
Я делаю веб-сайт блога и использую бэкэнд graphcms с GraphQl, я создал форму комментария и пытаюсь получить данные со стороны клиента, я использую следующую сборку js в папке API, чтобы создать конечную точку для создания комментария, но я получаю сообщение об ошибке, когда кто-то нажимает кнопку отправки «Uncaught (в обещании) SyntaxError: Неожиданный токен '<', «<!DOCTYPE»… недействителен JSON». Кто-нибудь знает, как исправить эту ошибку?
страницы/API/comments.js
import { GraphQLClient , gql } from "graphql-request";
export default async function comments(req, res) {
const graphQLClient = new GraphQLClient(process.env.NEXT_PUBLIC_GRAPHCMS_ENDPOINT, {
headers: {
Authorization: `Bearer ${process.env.GRAPHCMS_TOKEN}`,
},
}
);
const query = gql`
mutation MyMutation {
createComment(data: {name: "", email: "", comment: ""}) {
comment
email
name
}
}
`;
const result = await graphQLClient.request(query,req.body);
try {
return res.status(200).send(result)
} catch (error) {
return res.status(500).send(error)
}
}
услуги /index.js
export const submitComment = async (obj) => {
const result = await fetch('/api/comments', {
method:'POST',
headers:{
'Content-Type':'application/json'
},
body:JSON.stringify(obj)
})
return result.json()
};
Компоненты/комментарииForm.js
const handleCommentsSubmission = () =>{
setError(false);
const{value:comment} = commentEl.current;
const{value:name} = nameEl.current;
const{value:email} = emailEl.current;
const{checked:storeData} = storeDataEl.current;
if(!comment || !name || !email) {
setError(true);
return;
}
const commentObj = {
name ,email , comment
};
if(storeData){
window.localStorage.setItem('name', name)
window.localStorage.setItem('email', email)
}else{
window.localStorage.removeItem('name',name);
window.localStorage.removeItem('email',email);
}
submitComment(commentObj)
.then((res)=>{
setShowSuccessMessage(true);
setTimeout(() => {
setShowSuccessMessage(false)
}, 3000);
})
}
Я пробовал все, но ничего не работает :(