typescript - Kan inte skicka POST-förfrågningar i Angular med HttpClient
Jag försöker skicka en POST-begäran till en JSON-fil i TypeScript, Angular med HttpClient. Men jag får ett 404 inte hittad-fel, som säger att filen results.json inte kan hittas. Jag tycker att detta är konstigt eftersom GET-begäran fungerar alldeles utmärkt. För närvarande använder jag Angular 15.
Jag försökte följande:
let emptyObject = {};
const headers = new HttpHeaders()
.set('Content-Type', 'application/json');
this.http.post('/assets/results.json', emptyObject, {headers})
.subscribe((res:any) => {
console.log(res);
}, error => {
console.log(error)
});
Filen results.json är tom och ser bara ut så här:
[ ]När funktionen körs står det:
HttpErrorResponse {headers: HttpHeaders, status: 404, statusText: 'Not Found', url: 'http://localhost:4200/assets/results.json', ok: false, …}Jag vet att filen finns och att filsökvägen fungerar eftersom jag använder samma för get-förfrågningar. Finns det kanske ett alternativ jag behöver aktivera eller inaktivera? Det borde väl vara möjligt, eller?
Svar #1
Du behöver något som json-server eller någon server för att hantera POST-förfrågan. En GET-förfrågan är precis som din webbläsare, den hämtar bara en resurs från en specifik URL, en POST-förfrågan kan inte bara skicka data till någon fil, den måste hanteras av en server. För ett snabbt sätt att ställa in detta för utveckling är npm-paketet json-server väldigt bra om du ännu inte har någon erfarenhet av att sätta upp server: https://www.npmjs.com/package/json-server
Lite extra dokumentation om hur REST fungerar om du är intresserad: https://www.codecademy.com/article/what-is-rest