Ich hoffe, es geht allen gut. Ich habe vor kurzem angefangen, mit dem Winkel 4.4 zu arbeiten. Ich habe versucht, Daten auf meinem API-Server zu veröffentlichen, aber leider funktioniert es nicht. Ich habe schon 2 Tage damit verbracht aber immer noch keinen Erfolg. Und habe schon 6-7 Artikel aus angle.io ausprobiert. Ich habe beide Http und Httpclient module Ausprobiert, aber nichts scheint zu funktionieren.
Das Problem ist, dass Angular bei jedem Versuch, Daten auf meinem Server zu veröffentlichen, die http OPTIONS - Typanforderung anstelle von POST vornimmt.
this.http.post('http://myapiserver.com', {email: '[email protected]'}).subscribe(
res => {
const response = res.text();
}
);
Ich habe auch versucht, benutzerdefinierte Optionen mit der Anfrage zu senden, aber immer noch kein Erfolg.
const headers = new Headers({ 'Content-Type': 'x-www-form-urlencoded' });
const options = new RequestOptions({ headers: headers });
options.method = RequestMethod.Post;
options.body = {name: 'Adam Smith'};
//options.body = JSON.stringify({name: 'Adam Smith'}); // i also tried this
//options.body = 'param1=something¶m2=somethingelse'; // i also tried this
Ich verwendete ASP.NET Core 2.0, aber da es nicht funktionierte, habe ich auch einfachen PHP-Code ausprobiert. Hier ist der serverseitige Code für PHP. Und es funktioniert auch nicht.
<?php
print_r($_POST);
?>
Hinweis: Cors ist auch auf dem Server aktiviert. Ich habe auch versucht, einfach zu bekommen und es funktioniert einwandfrei.
Ich werde mich wirklich über eine Hilfe freuen.
Danke im Voraus
Ich habe es gelöst, indem ich den Content-Type auf application/x-www-form-urlencoded
gesetzt habe:
const headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
const options = new RequestOptions({ headers: headers });
const params = new URLSearchParams();
params.append('mypostField', 'myFieldValue');
http.post('myapiendpoint.com', params, options).subscribe();
haben Sie versucht, Header als drittes Argument in der Post-Methode zu übergeben:
this.http.post('http://myapiserver.com', JSON.stringify({name: 'Adam Smith'}), { headers: new Headers({ 'Content-Type': 'application/json' }) }).subscribe(
res => {
const response = res.text();
}
);
stellen Sie sicher, dass Sie Header von @ angle/http importieren
Ich hatte dasselbe Problem und ich habe es so benutzt (probiere es mit FormData). Es funktioniert für mich.
let formdata = new FormData();
formdata.append('email', '[email protected]');
this.http.post('http://myapiserver.com', formdata).subscribe(
res => {
const response = res.text();
}
);