CORS блокирует POST запросы, когда GET работает

1)Поднял локальный сервер на Express он слушает 3002 порт 2)Vue SLI стоит на порту 8080 Вполне логично что Cors будет блокировать запросы на разных постах, он так и делал. Я прописал на GET запрос
res.setHeader("Access-Control-Allow-Origin", "http://localhost:8080") и все работает. вот слушатель

app.get('/api/lessonse', (req, res) => {
   console.log("получил данные")
   res.setHeader("Access-Control-Allow-Origin", "http://localhost:8080")
   res.status(200)
   const getLessonse = async () => {
      try {
         await client.connect()
         console.log("Подключен к БД")
         lessonse = client.db().collection('lessonse')
         const lessonseArr = await lessonse.find().toArray();
         res.send(JSON.stringify(lessonseArr))


      }
      catch (e) {
         console.log(e)
      }

   }
   getLessonse()


})

Как только я попробовал проделать тоже самое с POST запросом, CORS ругается и не дает отправить данные

слушатель

app.post('/api/lessonsee', (req, res) => {
   res.status(200)
   res.setHeader("Access-Control-Allow-Origin", "http://localhost:8080")
   res.setHeader('Access-Control-Allow-Credentials', 'true');
   console.log("получил данные")
})

Браузер выдает ошибку

введите сюда описание изображения

Сам запрос во vue

 async save() {
      for (let i = 0; i < this.$refs.less.length; i++) {
        this.$refs.less[0].pushLesson();
      }

      let res = await fetch("http://localhost:3002/api/lessonse", {
        method: "POST",
        headers: {
          "Content-Type": "application/json;charset=utf-8",
        },
        body: JSON.stringify(),
      });
      let result = await response.json(this.newLessonseArrData);
      console.log(result.message);
    },
В чем моя проблема и почему так происходит? Если хедеры прописаны и работает только с GET? А POST Не пропускает?!


Ответы (1 шт):

Автор решения: Zulf

Помогло установка middleware cors :)

const express = require('express');
const cors = require('cors');

const app = express();
app.use(cors());
app.options('*', cors());
→ Ссылка