Как решить проблему, ответ на предполетный запрос не проходит проверку контроля доступа? - PullRequest
0 голосов
/ 17 октября 2019

У меня есть угловой код в виртуальной машине, код узла в другой виртуальной машине. Мне нужно сделать вызов API от этой угловой виртуальной машины к узлу виртуальной машины. Я включил модуль Cors также. Но все же при выполнении вызова API получение ошибки типа

"доступ к xmlhttprequest по адресу" http: IP1 "из источника" http: IP2 "было заблокировано политикой CORS: ответ на запрос предполетной проверки не выполняетсяпройти проверку контроля доступа: Нет «Контроль доступа».

Я также установил такой заголовок,

app.use(function(req,res,next) {
    res.setHeader('Access-Control-Allow-Origin','*');
    res.setHeader('Access-Control-Allow-Methods','POST');
    res.setHeader('Access-Control-Allow-Headers','X-Requested-With,content-type');
    res.setHeader('Access-Control-Allow-Credentials',true);
    next();
}); 

app.use(cors());

Но все же я столкнулся с ошибкой. Кто-нибудь может сказать мне, как решить эту ошибку?

1 Ответ

0 голосов
/ 17 октября 2019

Попробуйте явно указать свой локальный хост и добавить нужные типы методов:

// Add headers
app.use(function (req, res, next) {

    // Website you wish to allow to connect
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:4200');
    // desired types of methods
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');

    // Set to true if you need the website to include cookies in the requests sent
    // to the API (e.g. in case you use sessions)
    res.setHeader('Access-Control-Allow-Credentials', true);

    // Pass to next layer of middleware
    next();
});

ОБНОВЛЕНИЕ:

Например, сервер вашего узла размещен на http://127.0.0.1:8000. Тогда ваше угловое приложение должно быть http://127.0.0.1:4200.

ОБНОВЛЕНИЕ 1:

npm install --save cors

, а затем:

var express = require('express');
var cors = require('cors');
var app = express();
app.use(cors());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...