Express сервер не отвечает, когда CORS включен - PullRequest
0 голосов
/ 01 августа 2020

Я изучаю технологии NodeJS и Fullstack. Я слежу за веб-курсом, но в отличие от учителя я использую виртуальную машину в качестве сервера разработки.

Итак, я использую Windows, чтобы использовать браузер для просмотра внешнего интерфейса, а почтальон - управлять API и виртуальной машиной Ubuntu, запуская весь стек (NodeJS, React, Express, и c.). О, сеть виртуальных машин - это хуже моей собственной, поэтому у нее есть собственный IP-адрес в моя сеть (192.168.x.xxx)

Однако во время тестов я столкнулся с проблемами CORS. На бэкэнде, когда включена библиотека NodeJS CORS, мой бэкэнд не отвечает ни на какие запросы, но когда он отключен, он отвечает ...

Пример без CORS:

Example with CORS enabled:

Такое ощущение, что я делаю что-то не так, но я проверил все возможные ошибки на сервере. Пожалуйста, помогите!

1 Ответ

1 голос
/ 01 августа 2020

Вам необходимо правильно настроить CORS, для этого просто введите эту строку:

const cors = require('cors');
//your declarations
app.use(cors());
//your code

Полный пример из моего кода:

require('dotenv').config()
const express = require('express');
const logger = require('morgan');
const cors = require('cors');


const app = express();

app.use(cors()); <-- here call function
app.use(express.json());

if (process.env.NODE_ENV !== 'test') { app.use(logger('dev')); }

app.use(require('./server/index'));

module.exports = app;

Обратите внимание, что в моем коде в строка, которую я вызываю cors Я вызываю функцию (в скобках).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...