Symfony Angular Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть эта ошибка, когда я отправляю запрос на публикацию в api symfony4 .. Я использую fosrestBundle для создания api и nelmioCrosBundle для исправления ошибок кросса, но также у меня есть эта ошибка:

Доступ к XMLHttpRequest at 'http://localhost:8000/api/user/upload' от источника 'http://localhost:4200' заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-Origin '.

кодКонфигурация nelmio:

nelmio_cors:
        #    defaults:
        #        origin_regex: true
        #        allow_origin: ['%env(CORS_ALLOW_ORIGIN)%']
        #        allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
        #        allow_headers: ['Content-Type', 'Authorization']
        #        max_age: 3600
        #    paths:
        #        '^/': ~
        paths:
            '^/api':
                allow_origin: ['*']
                allow_headers: ['Authorization', 'Content-Type']
                allow_methods: ['GET', 'POST', 'PUT', 'DELETE']
                max_age: 3600

и это функция для отправки угловых данных в symfony4:

uploadFiles(test) {
      let headers = new Headers({ 'Content-Type': 'application/json',
      'Authorization': 'Bearer ' + localStorage.getItem('token') });

      console.log(test);
      return this._http.post(this.url + '/user/upload',JSON.stringify(test) ,{ headers: headers })
        .pipe(map(res => res.json()));
    }

Я использую прокси, но также и ошибку, а также я создаю прослушиватель для установки заголовков в ответе, но такжеошибка .. как решить эту ошибку ..

Ответы [ 4 ]

0 голосов
/ 11 февраля 2019

Если вы просто хотите играть с пакетами и не нуждаетесь в CORS, вы можете отключить его с помощью этого хромированного расширения .При включенных расширениях появится зеленый значок, поэтому вы можете снять отметку Enable cross-origin sharing

0 голосов
/ 11 февраля 2019

Добавить OPTIONS к allow_methods

0 голосов
/ 11 февраля 2019

Заголовок «Авторизация» не разрешен вашим бэкэндом.В вашем приложении Symfony вы должны установить заголовок ответа, содержащий:

Access-Control-Allow-Headers : 'Content-Type', 'Authorization'

Проверьте эту ссылку: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers

0 голосов
/ 11 февраля 2019

Попробуйте добавить Access-Control-Allow-Origin в allow_headers массив

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...