Cors по-прежнему блокирует запросы после их установки на сервере

Chrome CORS по-прежнему блокирует API, даже если мои CORS включены на сервере. Я прочитал официальную документацию, чтобы включить CORS. Мой бэкэнд написан на Nest.js, а интерфейс — на Ionic/Angular.

Помимо официальных документов, я пробовал различные другие решения, предложенные пользователями, такие как параметры настройки, но ни одно из них не работает.

Вызовы API отлично работают при использовании postman.

Вот код сервера:

const app = await NestFactory.create(AppModule);
  const options = {
    origin: '*',
    headers: '*',
    methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
    preflightContinue: true,
    optionsSuccessStatus: 204,
    credentials: true,
  };
  app.enableCors(options);
  await app.listen(3000);

Вот http-вызов:

  this.http.post(`${this.config.serverAddress}/api/auth/login`,{'username': 'test', 'password': 'password'})
        .subscribe(d=>{
            console.log(d);
        })

и, наконец, вот сообщение об ошибке Chrome:

zone-evergreen.js:2952 Access to XMLHttpRequest at 'localhost:3000/api/auth/login' from origin 'http://localhost:8100' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

person Codeviews    schedule 10.09.2019    source источник


Ответы (1)


В вашем URL отсутствует протокол. Как указано в ошибке, поддерживаются только эти протоколы:

http, данные, хром, хром-расширение, https.

Так что попробуйте запрос с http://localhost:3000/api/auth/login

person Kim Kern    schedule 10.09.2019