Не удается решить политику CORS в моем приложении express - PullRequest
0 голосов
/ 23 января 2020

Я получаю эту ошибку

, заблокированную политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Если непрозрачный ответ соответствует вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.

Это мой Express код

const express = require('express')
const app = express()
const port = 3001

var redis = require("redis"),
    client = redis.createClient();

const {promisify} = require('util')
const getAsync = promisify(client.get).bind(client);

app.get('/jobs', async (req, res) => {
    const jobs = await getAsync('github');
    res.header("Access-Control-Allow-Origin", "http://localhost:3000");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    return res.send(jobs);
})

app.listen(port, () => console.log(`Example app listening on port ${port}!`))

1 Ответ

1 голос
/ 23 января 2020

Попробуйте пакет промежуточного программного обеспечения cors, чтобы включить ядра в express приложении.

установить как производственную зависимость.

npm install --save cors

Пример:

const express = require('express');
const cors = require('cors');
const app = express();
const port = 3001
var redis = require("redis"),
    client = redis.createClient();
const { promisify } = require('util')
const getAsync = promisify(client.get).bind(client);
const allowedOrigins = ["http://localhost:3000"];

app.use(cors({
    origin: function (origin, callback) {
        if (!origin) return callback(null, true);
        if (allowedOrigins.indexOf(origin) === -1) {
            var msg = 'The CORS policy for this site does not ' +
                'allow access from the specified Origin.';
            return callback(new Error(msg), false);
        }
        return callback(null, true);
    }
}));

app.get('/jobs', async (req, res) => {
    const jobs = await getAsync('github');
    res.header("Access-Control-Allow-Origin", "http://localhost:3000");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    return res.send(jobs);
})
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...