не может потреблять Post метод в угловых 7 - PullRequest
0 голосов
/ 25 февраля 2019

я работал над проектом Angular.где я должен получить данные с сервера через веб-сервис (ядро веб-API ASP.NET). Так что метод GET работает отлично, но я не могу использовать Post Method.я получаю эту ошибку enter image description here

мой метод сообщения

        [HttpPost]
    public IActionResult PostMerchandiser([FromBody] Presentent presentent)
    {
        using (var db = new DMerchContext(ClientConnectionString))
        {
            presentent.idElement = Guid.NewGuid().ToString();
            presentent.etat = 0;
            db.Add(presentent);
            db.SaveChanges();
            return Ok();
        }
    }

также я добавил это в свой web.config

<customHeaders>
 <add name="Access-Control-Allow-Origin" value="http://localhost:4200" />
 <add name="Access-Control-Allow-Headers" value="Content-Type, Accept, 
   Authorization" />
  <add name="Access-Control-Allow-Credentials" value="true" />
 <add name="Access-Control-Allow-Methods" 
  value="POST,GET,PUT,DELETE,OPTIONS" />
  <add name="Access-Control-Max-Age" value="1728000" />      
</customHeaders>

AngularКод (Сервис)

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';

import { Configuration } from '../Services/Configuration';
import { Merchandiser } from 'src/Models/Merchandiser';

@Injectable()
 export class MerchandiserService {
   private actionUrl: string;

constructor(public http: HttpClient, public configuration: Configuration) 
{
    this.actionUrl = configuration.serverWithApiUrl;
}
/////////////////////////////////////////// Login Services 
 /////////////////////////////////////////
public getMerchandisers<T>(): Observable<T> {
    return this.http.get<T>(this.actionUrl + 
 'Presentents/GetPresentents');
}

public PostMerchandiser<T>(merchandiser: Merchandiser): Observable<T> {
    return this.http.post<T>(this.actionUrl+'Presentents/PostMerchandiser', 
merchandiser);
}
}

Есть предложения, пожалуйста?

1 Ответ

0 голосов
/ 25 февраля 2019

Вы должны включить / настроить промежуточное программное обеспечение CORS на сервере.Я думаю, что web.config только для IIS.

Вы можете выполнить это для aspnetcore, следуя этому руководству https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-2.2

примечание: скопировано из комментарий таклюди могут увидеть решение

...