Angular 9 front / corsheaders django 3 back - добавление заголовков CORS к запросу - PullRequest
0 голосов
/ 09 июля 2020

проблема найти способ правильно настроить интерфейсное приложение в Angular 9, использующем обратный веб-сервис REST. На удаленном сервере с IP-адресом stati c я запускаю свой angular dev-сервер (я знаю, что это только для целей разработки, но сначала хочу избавиться от этой ошибки)

ng serve --host 0.0.0.0 --port 80

, чтобы я мог получить к нему доступ извне. то у меня есть приложение django также с сервером разработки по адресу

127.0.0.1:8000

В файле angular service.ts я пытаюсь ввести заголовок

export class FlightService {

  httpOptions = { 
    headers: new HttpHeaders({
      'Access-Control-Request-Method':'GET',
      'Access-Control-Request-Headers':'origin, x-requested-with, accept'
    })
  };

  private endpoint = 'http://127.0.0.1:8000/services';

  constructor(private http: HttpClient) { }
  //GET All Services
  getAllServices(): Observable<any>{
    return this.http.get(this.endpoint, this.httpOptions)
  }
}

В settings.py моего django бэкэнда я поместил вверху модуль corsheaders:

'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...

и разрешил всему хосту (после многих попыток с белым списком, который ни один из них не работал :

CORS_ALLOW_CREDENTIALS = False 

CORS_ALLOW_METHODS = [
 #   'DELETE',
    'GET',
    'OPTIONS'
    #'PATCH',
    #'POST',
    #'PUT',
]


CORS_ALLOW_HEADERS = [
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
    'x-forwarded-for'
]

Но у меня все время не получается. После добавления httpOptions я получаю сообщение об ошибке в браузере:

http. js: 2403 Отказано в установке небезопасных заголовок «Access-Control-Request-Method»

, а также:

Отказано в установке небезопасного заголовка «Access-Control-Request-Headers»

Так что, по крайней мере, я знаю, что Angular пытается его добавить.

Пожалуйста, помогите, как подойти к этому? Я думаю, проблема на стороне клиента. Я также пытался настроить Nginx с прокси к Angular dev, но также не может добавить заголовки в конфигурации Nginx.

1 Ответ

0 голосов
/ 09 июля 2020

Эти заголовки CORS не предназначены для вас, браузер сделает это автоматически, если обнаружит, что вы пытаетесь получить доступ к междоменным ресурсам.

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