Функция блокировки CORS на Nest js (сервер) и Vuejs (клиент) на localhost - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь научиться создавать свой собственный RestAPI, используя узел и гнездо js. все работает нормально, проверено на POSTMAN: работает.

, но когда я попытался получить его из своего интерфейса, он был заблокирован CORS. хотя я включил настройку cors в Nest js.

import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.enableCors();
  await app.listen(3000);
}
bootstrap();

и вызвал его из VueJS:

postPackageToServer: function () {
  var myHeaders = new Headers();
  myHeaders.append("Content-Type", "application/json");

      var raw = JSON.stringify({
        type: "monthly",
        price: 30,
        startDate: "04-08-2020",
        endDate: "06-08-2020",
      });

      var requestOptions = {
        method: "POST",
        headers: myHeaders,
        body: raw,
        redirect: "follow",
      };

      let postData = async() => {
        let postingDating = await fetch("localhost:3000/vouchers", requestOptions)
        .then((response) => response.text())
        .then((result) => console.log(result))
        .catch((error) => console.log("error", error));
      }
    },

, могу ли я узнать, что я сделал не так? и как это исправить. Если на этот вопрос был дан ответ другим вопросом, я хотел бы извлечь из него урок.

спасибо

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Похоже, ваш код в порядке.

попробуйте добавить протокол http / https в запрос клиента

попробуйте изменить параметр cors

var corsOptions = {
    origin: 'http://example.com',
    optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) 
    choke on 204
}
0 голосов
/ 03 августа 2020

Я почти уверен, что вам не хватает заголовков CORS в заголовках запросов fetch. Попробуйте добавить этот заголовок в свой метод myHeaders.append():

myHeaders.append('Access-Control-Allow-Origin', '*')
...