Я получаю кросс-ошибку источника, используя угловой 4 webapi2 - PullRequest
0 голосов
/ 18 декабря 2018

Я работаю над приложением, использующим Angular 4 и Web API.Я получаю ошибку CORS, даже если я сохранил код в Web.config, Startup, WebApiConfig и на контроллере, но все же я получаю эту ошибку.Я не знаю, как это понять.Вот мои примеры кода

Startup.cs

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

WebApiConfig

 var cors = new EnableCorsAttribute("*", "*", "*");
            config.EnableCors(cors);

Web.Конфиг

<httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
      </customHeaders>
    </httpProtocol>

Контроллер

 [EnableCors(origins: "*", headers: "*", methods: "*")]
    [ApiVersion1RoutePrefix("Settings")]
    public class SettingsController : ApiController

Даже кто-то просил удалить этот тег из веб-конфигурации, и я тоже сделал это

<!--<remove name="OPTIONSVerbHandler" />-->

Мой угловой вызов здесь

  public getbyString<T>(apiUrl:any,param: string): Observable<T> {
    let _options = { headers: new HttpHeaders(
      { 
        'Content-Type': 'application/json',
        'Authorization': 'Bearer '+ localStorage.getItem('access_token')
      }
    )};
    return this.http.get<T>(this.actionUrl+apiUrl +"?version="+param,_options);
  }

Пожалуйста, см. Ниже, чтобы увидеть ошибку.

enter image description here

Iсделали все это, но пока безуспешно.

1 Ответ

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

CORS (Cross-Origin Resource Sharing) - это способ для сервера сказать: «Я приму ваш запрос, даже если вы пришли из другого источника».Это требует сотрудничества с сервера - поэтому, если вы не можете изменить сервер (например, если вы используете внешний API), этот подход не будет работать.

Измените сервер, добавив заголовок Access-Control-Allow-Origin: * для включения запросов на отправку из любого места (или указание домена вместо *).

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