заблокирован политикой CORS в ioni c -5 angular - PullRequest
0 голосов
/ 02 марта 2020

Я сталкиваюсь с этой ошибкой, может кто-нибудь, пожалуйста, направьте меня к тому же. Я сделал конфигурацию в proxy.conf. json Я установил заголовок с базовым URL в user.service.ts

import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import { map } from 'rxjs/operators';


@Injectable()
export class UserService {

    constructor(public http: Http) { }

    yaho() {
        const headers = new Headers();
        headers.append('Access-Control-Allow-Origin', '*');
        // headers.append('Access-Control-Allow-Credentials', 'true');
        headers.append('Access-Control-Allow-Headers', 'Content-Type');

        headers.append('Access-Control-Allow-Methods', 'GET, POST');


        headers.append('Content-Type', 'application/json');
        headers.append('appKey', '4d71e017-6896-477b-bb0d-93bb9e6d3224');
        const options = new RequestOptions({ headers });
        const baseURL = 'abx/gas.json';
        console.log('Base url---->' + baseURL);
        const url = 'localhost:8081/abx/gas.json';
        return this.http.get(url, options)
            .pipe(map(res => res.json()));
    }
}

Ответы [ 2 ]

2 голосов
/ 02 марта 2020

Вы должны настроить свой бэкэнд так, чтобы он принимал CORS, а не ваш веб-интерфейс

(заголовки, которые вы пытаетесь добавить, должны добавляться в бэкэнд, а не в приложение angular)

0 голосов
/ 03 марта 2020

Вы не можете решить проблему, пытаясь включить CORS в своем клиенте. Это общая / фундаментальная особенность http , а не то, что указывает c на ioni c или angular. Если у вас нет возможности изменить серверную часть, вы можете использовать прокси.

"Интерфейс командной строки Ioni c предоставил возможность запрашивать проблемы с прокси-сервером, чтобы вы могли обойти любые проблемы с CORS, которые вы можете иметь. Поскольку сервер отправляет запрос fre sh к месту назначения, источник не будет и, следовательно, не требуется CORS "

, как описано здесь и пример репо здесь

Я предполагаю, что вы пытаетесь обработать запрос CORS, не включая его в бэкэнде.

Обратите внимание, что «CORS возникает только тогда, когда мы работаем или тестирование нашего приложения при запуске ioni c serve или ioni c run -l. "

для настройки прокси:

  1. настройка прокси в наших ioni c .проект
{
  "name": "proxy-example",
  "app_id": "",
  "proxies": [
    {
      "path": "/api",
      "proxyUrl": "http://cors.api.com/api"
    }
  ]
}
замените URL-адреса наших конечных точек на прокси-сервер запустите ionic serve

Помимо этого "Самый простой способ решить проблему с CORS - это в конечном итоге задать свой API-провайдер разрешает всем хостам "

...