Ich habe die folgende Methode auf einem Web-api asp.net Kern AppAngular Http Post funktioniert nicht. Fehler: Nicht unterstützter Medientyp
Api post-Methode:
// POST api/values
[HttpPost]
public string Post([FromBody] List<ValuesToPost> values)
{
return values.Count.ToString();
}
es funktioniert mit Postman: POST JSON (application/json) Body -> raw:
[{
Value: "asd",
Column:2,
Row:1,
IsPostBack: true
},
{
Value: "assddfs",
Column:2,
Row:1,
IsPostBack: true
}]
Und auf meine Angular App:
ComponentOne
sendDataToTheServerByPost(arrayOfObjects: any) {
this.dataService.postData(arrayOfObjects).subscribe(event => {
console.log("post");
});
}
DataService.ts
public postData(body: any): Observable<any> {
let bodyToSend = JSON.stringify(body);
let headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('Accept', 'application/json');
return this.http.post(this.DataUrl, bodyToSend, { headers: headers }).map((response: Response) => {
return response.json().data;
}).catch(this.handleError);
}
ich auf der Chrome-Konsole den folgenden Fehler bin Empfang:
Error
zone.js:2622 OPTIONS http://localhost:8080/api/values 415 (Unsupported Media Type)
Was ich bin ich fehlt, In Postman den Aufruf der API Post-Methode funktioniert, aber nicht aus eckigen App. Alle laufen auf demselben Dev-Computer. CORS Problem Ich glaube nicht, weil Get Methode gut funktioniert. Oder liege ich falsch? Vorschläge?
welche Medientyp ist Ihre Server API-Methode zurück? Und akzeptiert Ihre API OPTIONS-Anfragen? sieht aus wie eckig ist der Endpunkt vor dem Posting – derelict
Ihr Server sollte OPTIONS-Methode akzeptieren –