Как изменить политику CORS для гибридного приложения, которое использует angular 6, ionic 4 в качестве внешнего интерфейса и scala в качестве внутреннего? - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь использовать метод post для входа в систему, следующий код:

log(data){
    let vals =  JSON.stringify(data.value);
    let headerOptions = new HttpHeaders();
    headerOptions.append('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
    return this.http.post("http://IP_server:88/mLog" , vals, { headers: headerOptions}).pipe(tap(
    res=>{ console.log('data: '+res) },
    err=> console.log(err) ));
}

Я получаю сообщение об ошибке следующим образом:

Доступ к XMLHttpRequest по адресу http://IP_server:88/mLog' from origin 'http://localhost:8080' заблокировано политикой CORS: Ответ на запрос предполетной проверки не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Ответы [ 3 ]

0 голосов
/ 18 декабря 2018

Можете ли вы нажать URL-адрес из браузера и получить ожидаемый ответ?
Если да, то НЕТ необходимости для изменения кода интерфейса / Javascript.
Необходимо включить фильтр CORS со стороны сервера / код Java.

0 голосов
/ 18 декабря 2018

Ионные приложения (android, ios и ionic serve) работают на локальном хосте.По умолчанию веб-API не разрешает запрос из другого источника.

Таким образом, у вас есть 3 варианта:

  1. Разрешить перекрестный запрос источника в веб-интерфейсе / сервере.
  2. Настройка прокси в ионном приложении ссылка .Я пытался это работает в Android не в IOS.
  3. Используйте ионную нативную http ссылку (рекомендуется), она будет разрешена в обоих случаях.
0 голосов
/ 18 декабря 2018

В Angular 6 вы должны использовать заголовки httpClient для передачи со всеми заголовками конечных точек.ниже приведена функция:

  getHeader() {
    const httpOptions = {
      headers: new HttpHeaders({
        'Content-Type': 'application/json',
        "Access-Control-Allow-Origin": "*"
      })
    };
    return httpOptions;
  }

Вызовите эту функцию и передайте httpOptions всем конечным точкам.В противном случае вы должны внести изменения на стороне Java. Они должны установить заголовки для перекрестного происхождения.

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