Как заставить Access-Control-Allow-Origin в размещенном на IIS веб-сервисе C # - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть веб-служба .net, размещенная в IIS 10. Я пытаюсь получить данные с веб-сервера из углового интерфейса.

В IIS активирован Access-Control-Allow-Origin: enter image description here

У меня также включены customHeaders в моем Web.Conf:

enter image description here

Когда я пытаюсь получить доступ к веб-сервису с углового интерфейса, я получаю эту ошибку:

enter image description here

Я использую HttpClient из @ angular / common / http и пробовал несколько вариантов запросов, но все же не повезло.Вот мой последний неудавшийся запрос

public GetSlippage(tradeGroup: string, start: string, end: string, period: string, premiumFilter: number): Observable<SlippageContainer> {
    let url: string = `${this._slippageUrl}/${tradeGroup}`;
    let queryParams: HttpParams = new HttpParams()
    .set('start', start)
    .set('end', end)
    .set('period', 'none')
    .set('premium', String(premiumFilter));

    let heads: HttpHeaders = new HttpHeaders();
    heads = heads.append('Content-Type', 'text/plain');
    heads = heads.append('Access-Control-Allow-Origin', '*');

    console.log(`Sent Slippage Request ${start} ${end}`);
    return this._httpClient.get<SlippageContainer>(url, { headers: heads, params: queryParams });
}

По какой-то причине запросы работают, когда я использую http://<serverName>:port/endpoint, но не http://<serverName.domainName.local:port/endpoint.В конечном итоге я хочу использовать полные доменные имена в URL.

1 Ответ

0 голосов
/ 16 апреля 2019

вам нужно разрешить CORS в вашем приложении asp.net. В ConfigureServices добавьте:

services.AddCors(o => o.AddPolicy("AllowAll", builder =>
{
    builder.AllowAnyOrigin()
           .AllowAnyMethod()
           .AllowAnyHeader();
}));

и в Configure добавить:

app.UseCors("AllowAll");

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

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