Клиент Html не может отправлять сообщения в api ERR_CONNECTION_TIMED_OUT - PullRequest
0 голосов
/ 27 мая 2020

мой api не принимает данные из кода на стороне клиента в точку / api enpoint, которую я создал на локальном хосте веб-сервера на порту 3000. Как мне заставить его использовать код на стороне сервера для приема почтового запроса и консоли. журнал (запрос); правильно, если это Page started (index):23 POST https://goldengates.club:3000/api net::ERR_CONNECTION_TIMED_OUT (anonymous) @ (index):23 goldengates.club/:1 Uncaught (in promise) TypeError: Failed to fetch

Код на стороне клиента:

<!DOCTYPE html>

<html>
    <head>

    </head>
    <body>
        <script>
        console.log("Page started");
            const num1=1;
            const num2=2;
            const data=35;//{num1,num2};
            const options =
            {
                method: 'POST',
                headers:
                {
                    "Content-Type": "application/json"
                },

                body: JSON.stringify(data)
            };
            fetch('https://goldengates.club:3000/api'/*'https://goldengates.club/Cypher-Network/fetchTest.js'*/,options);
        </script>
    </body>
</html>

Код на стороне сервера:

const express = require('express');
const app = express();
app.listen(3000,()=>console.log('listening on port 3000'));
app.use(express.static('public'));

app.post('/api',(request,response)=>
{
    response.setHeader("Content-Type", "application/json");response.send({ statusCode:200, customMessage : 'Sucess', status : true })

    console.log(request);
    response.end();
});

1 Ответ

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

функция fetch возвращает обещание, чтобы использовать его, вам нужно вызвать метод then, например:

// backend code
app.post('/example', (req, res) => res.json({ data: 'abc' }));
// frontend code
fetch('/example', { method: 'post' }).then(r => r.json()).then(d => alert(d.data));

Я думаю, что так, как вы показываете в своем коде, он просто сохранит функцию вычисления результата обещания, а не выполнит его и выдаст фактический результат (данные получены и переданы в предупреждение). С помощью метода Promise.then вы можете передавать данные так, как вы это делали, с заголовком Content-Type: application/json и body: JSON.stringify(object).

...