Задать вопрос
coolswood
@coolswood
https://coolswood.github.io

Почему на node server приходит пустой POST?

Пытаюсь отправить данные через fetch на свой сервер на node:
fetch('http://localhost:3001/translate',
        {
            method: "POST",
            headers: {
                "Content-Type": "application/json"
            },
            mode: "no-cors",
            body: JSON.stringify({"aaa": "form"})
        }


Код сервера:

const express = require('express')
const mongoose = require('mongoose');
const bodyParser = require('body-parser')

const translated = require('./models/Translated')

const app = express()

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))

let db;

mongoose.connect('mongodb://localhost:27017/local', (error, database) => {
    if(error) {
        return console.log('error');
    }
    db = database;
})

app.get('/', (req, res) => res.send('Hello World!'))

app.post('/translate', (req, res) => {
    console.log(req.body, 'ds');
})


На node использую body parser, но он всегда возвращает пустой объект. При этом посылал запросы через Postman - с ними проблем не возникало. Помогите решить затруднение
  • Вопрос задан
  • 2442 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 4
уберите с запроса mode: "no-cors",
Ответ написан
Комментировать
@PloAl
Попробуйте добавить в headers
"Content-Length": Buffer.byteLength(JSON.stringify({"aaa": "form"}),"utf8")
Ответ написан
BRAGA96
@BRAGA96
Отправлять нужно не на localhost:3001 а на external адрес вида 192.168.xx.xx:3001
Ответ написан
Rapt0p7
@Rapt0p7
FrontEnd developer in Eastwood
Попробуйте так:
fetch('/translate',
  {
    method: 'POST',
    headers: new Headers({
      Accept: 'application/json',
      'Content-Type': 'application/json'
    }),
    mode: 'same-origin',
    body: JSON.stringify({ aaa: 'form' })
  }
);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы