Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:3000/ (Reason: CORS request did not succeed). Status code: (null).
Если возникает такая ошибка, то это CORS не может получить данные с другого домена.
Похожий ответ на русской стековерфлоу, но что можно проверить постман посылает ответ : request.query а с localhost ответ принимается через request.body Если распечатать request через console.log(request); будет видно, что body{}, - пустой объект, а в query{ value: ‘все переданные данные’ }
Форма html отправляет в body что в постмане не передается. Решение, записать заголовки в nodejs таким образом:
app.use(function (request, response, next) {
response.setHeader('Content-Type', 'application/json');
response.setHeader('Access-Control-Allow-Origin', 'http://localhost');
response.setHeader('Access-Control-Allow-Methods', 'POST');
response.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
response.setHeader('Access-Control-Allow-Credentials', true);
next();
});
В примере указан response.setHeader(‘Access-control-Allow-Origin’, ‘localhost’) - в условиях сервера, вместо localhost нужно указать домен с которого идет запрос. Либо *, но звездочка открывает доступ для передачи запросов с любого источника.
И если запрос отправляется с другого порта, то его тоже нужно указывать, например localhost:4400 - либо в “Access-Control-Allow-Origin’, “*” - указать звездочку. Что значит что все запросы будут приниматься. Все запросы через fetch из html формы на сервер будут получены без проблем.
Хотя в ёнтернете есть описания способа через мидлвар corse() - на том же самом стаковерфлоу советуют ставить npm cors, но работает и способ описаный тут.
ChikChicly Spacehands ForsmazHorowich
