Не имеет http статуса ошибки в angular с webapi - PullRequest
0 голосов
/ 14 февраля 2020

Я пытался передать данные формы из angular в webapi, мой webapi работает нормально с помощью почтальона, а через angular я получаю ошибку скриншота ниже для справки. Пожалуйста, посмотрите мой код и предложите мне любые изменения. Я искал в Google решение, я добавил proxy.conf. json это также в angular. Насколько я знаю, я добавил все детали правильно только, пожалуйста, предложите мне, если я сделал что-то не так в любом месте. Помогите мне в этом

Мой код WebPAIConfig.cs:

        public static void Register(HttpConfiguration config)
    {
        //EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "*");
        //config.EnableCors();
        //var cors = new EnableCorsAttribute("*", "*", "*");
        //config.EnableCors(cors);
        config.EnableCors();
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );


    }

Мой Код Cors WebAPI в webConfig.cs:

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

Error Image in F12

My WebAPI: [Route("api/CLOInfo/SaveUpdateCLODetails/")]
    [AcceptVerbs("POST", "GET")]
    [HttpPost]
    public HttpResponseMessage Post([FromBody]CustomModel model)
    {
        return Request.CreateResponse(HttpStatusCode.OK, "Succdess");
    } public class CustomModel
{
    public string Name { get; set; }
}

Мой ANgular Служебный вызов: я также пробовал службы http и httpclient.

CLODetailsSave(SaveCLODetails: CLOModels): Observable<Response> {
    let requestOptions: RequestOptionsArgs = {
        headers: new Headers({ 'content-type': 'application/json' })
      };

      return this._http.post(this.baseUrl + 'SaveUpdateCLODetails', SaveCLODetails, requestOptions);

    //return this._httpclient.post(this.baseUrl + "SaveUpdateCLODetails", SaveCLODetails);

    // return this._httpclient.post<void>(this.baseUrl + "SaveUpdateCLODetails", SaveCLODetails, {
    //     headers: new HttpHeaders({

    //         'Content-Type': 'application/json',
    //         'mode': 'no-cors'
    //     })
    //   });
}

Мой Angular Метод вызова:

this._CLoAPiService.CLODetailsSave(this._CLODetails).subscribe(res => {
  console.log(res);
})

1 Ответ

0 голосов
/ 14 февраля 2020

Вам необходимо включить CORS в WebApi

config.EnableCors();

Более подробное объяснение см. this .

...