Во-первых, имейте в виду, что я уже проверил другие подобные сообщения и не нашел правильного ответа на свой вопрос.
Я разработал клиент-серверное приложение.
Клиентская частьв React, и обслуживается узлом "serve" веб-сервером.Он должен вызывать REST-сервисы, хранящиеся на моем сервере.
Серверная часть является сервером koa (то есть узлом) и обслуживает несколько REST-сервисов.
Оба установлены на одном Raspberry Pi.Эта малина подключена к моей локальной сети.Я настроил брандмауэр своей сети на открытие портов для доступа к моему клиенту и моим службам REST.Я также объявил свой веб-сайт React в сети, чтобы он был доступен.
Так что я могу получить доступ к своему веб-сайту.Но когда я пытаюсь вызвать оттуда мои REST-сервисы (нажав на кнопку), я получаю следующую ошибку (в chrome): в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».Происхождение 'http://X.X.X.X' поэтому не разрешено.Ответ содержал код состояния HTTP 403. "
Я попытался установить коа-кор на свои службы REST, но безуспешно. Я попытался настроить его, добавив origin: true, затем origin: XXXX, затем origin:true, учетные данные: true, но все равно не повезло.
На веб-сайте я пытался получить доступ к своим службам REST через XXXX, через localhost, через 127.0.1.1, но ничего лучше.
Пожалуйста, помогите.
[EDIT] код определения моего сервера
const Koa = require('koa');
const app = new Koa();
const cors = require('koa-cors');
const PORT = 8067;
const Router = require('koa-router');
const router = new Router();
const Logger = require('koa-logger');
const respond = require('koa-respond');
const BodyParser = require('koa-bodyparser');
const log4jslogger = require('./libs/logger.js');
app.use(cors()); // << deprecated. Find better method ?
app.use(BodyParser({
enableTypes: ['json'],
jsonLimit: '5mb',
strict: true,
onerror: function (err, ctx) {
ctx.throw('body parse error', 422)
}
}))
app.use(respond());
// API routes
app.use(Logger());
router.use('/users', require('./routes/users'));
app.use(router.routes());
app.use(router.allowedMethods());
const server = app.listen(PORT, () => {
log4jslogger.warn(`${new Date()} : User server listening on port: ${PORT}`);
});
module.exports = app;