Я новичок в угловых 4 веб-API.Я хочу сохранить некоторые данные в базу данных, используя угловые 4 веб-API.Когда я вызываю метод GET из angular, он работает нормально, но не работает с методом POST.Я получаю 415 неподдерживаемых типов носителей.Все время, но когда я использую почтальон, метод post работает нормально, потому что я меняю тип контента на application / json.Но в angular это не работает ... Я вижу много проблем с той же проблемой, но они не работают для меня.Здесь я добавляю некоторые жестко закодированные данные.
Это мой компонент ts файл:
fulldetail: Idetails[] =[];
detail: Idetails;
onClick(value:any) {
\\hardcoded data
this.id = 1;
this.name= abcd;
this.address= "abcdefgh";
this.about= "samplestring";
this.number= 18888;
this.count = 12.0;
this._Service.CatchDetail(this.id, this.name, this.address,
this.about, this.number, this.count)
.subscribe(detail=> {
detail.forEach(value => {
this.fulldetails.push(value)
});
},
error => {
console.error(error);
this.statusMessage = "Problem with the service.Please try again after sometime";
});
А это мой сервисный .ts код:
CatchDetail(id: number, name: string, address: string,
about: string, number: number, count: number)
: Observable<Idetails[]> {
let data= JSON.stringify([{ id: id, name: name, address: address, about: about, nu: number, count: count }]);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this._http.post('http://localhost:1234/api/contrllername/' + 'detail', data,
{
params: [{ id: id, name: name, address: address, about: about, nu: number, count: count }]
})
.map((response: Response) => <Idetails[]>response.json())
}
А это workdetails.ts (класс):
export class Idetails {
constructor(
public id: number,
public name: string,
public address: string,
public about: string,
public number: number,
public count: number
) { }
}
Это мой контроллер:
[HttpPost]
public void Detail([FromBody] List<spGetDetails_Result> jsonvalues)
{
foreach (spGetDetails_ResultDatadetail in jsonvalues)
{
spGetDetails_ResultDetailobject = new spGetDetails_Result();
Detailobject.id = Datadetail.id;
Detailobject.name= Datadetail.name;
Detailobject.address= Datadetail.address;
Detailobject.about= Datadetail.about;
Detailobject.number= Datadetail.number;
Detailobject.count = Datadetail.count;
enqentities.spGetDetails_Result(Datadetail.id, Datadetail.name, Datadetail.address, Datadetail.about, Datadetail.number, Datadetail.count);
}
}
public class spGetDetails
{
public int id { get; set; }
public string name{ get; set; }
public string address{ get; set; }
public string about{ get; set; }
public int number{ get; set; }
public int count { get; set; }
}
}
zone.js: 2933 POST http://localhost:1234/api/controllername/Detail?id=1&name=abc&address=hj1hgj368&about=dfghjkl&number=31&count=3 415 (неподдерживаемый тип носителя).body: "{" Message ":" Тип носителя "text / plain" объекта запроса не поддерживается для этого ресурса. "," ExceptionMessage ":" Нет MediaTypeFormatter, доступного для чтения объекта типа 'List`1' из содержимогос типом носителя 'text / plain' ........... и т. д.
, когда я использую почтальон, метод post работает нормально, потому что я изменяю тип контента на application/ JSON.Но в угловых это не работает.