Error 415 Unsupported Media Type when uploading files using Angular 12 with TypeScript

I'm currently working on a project using Angular 12 and Spring Boot for image uploads. I have successfully tested the API with Postman and it's working correctly on the backend. However, when I try to test the front end, I encounter the following error:

"status: 415, error: "Unsupported Media Type", message: "Content type 'application/json' not supported","

******* Here's my TypeScript file: *******


host = environment.API_URL;
  private baseUrl = this.host;

  constructor(private http: HttpClient) { }

  upload(file: File): Observable<HttpEvent<any>> {

    const formData: FormData = new FormData();

    formData.append('file', file);
 
    const req = new HttpRequest('POST', `${this.baseUrl}/uploadFile`, formData,{
      reportProgress: true, 
      responseType: 'json'
    });

    return this.http.request(req);
  }

  getFiles(): Observable<any> {
    return this.http.get(`${this.baseUrl}/files`);
  }

}

Thank you for any assistance you can provide.

Answer №1

It appears that the error message coming from the server is quite straightforward: 'Content type application/json' is not supported.

Typically, the content-type for file uploads should be set to multipart/form-data. You can achieve this by doing the following:

const request = new HttpRequest(
      'POST',
      `${this.baseUrl}/uploadFile`,
      formData,
      {
        headers: new HttpHeaders({ 'content-type': 'multipart/form-data' }),
        reportProgress: true,
        responseType: 'json',
      }
    );

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Sending data from a parent component to a child component using @Input in Angular 16

For some reason, I am struggling to pass the variable someErrorString from the Parent component to the child component page-error. When I check the UI of page-error, it appears blank instead of showing "Hi!" as expected. What could be the issue here? Pare ...

Troubleshooting an Integration Problem Between Express and socket.io

Having trouble reaching the io.on('connect') callback in my basic express setup. The connection seems to stall. Node 12.14.1 express 4.17.1 socket.io 3.0.1 code import express, { ErrorRequestHandler } from 'express'; import path from ...

Transform an Excel spreadsheet into Json format effortlessly with Kendo's powerful tools

My upload feature allows users to upload an Excel sheet, and the backend API expects the data in JSON format. Here is an example of the expected input: [{ "LineNumber": "1", "Parma": 123, "PartNumber": 234, "Tes ...

Guide to incorporate a URL handler for a static HTML page in the app.yaml file while running an Angular application

I'm currently in the process of setting up a static HTML page to be displayed after a user unsubscribes from a mailing list. This page needs to be hosted on the same Google App Engine as my primary Angular 7 application. However, when I try to access ...

Angular 5 is throwing an error that says: "There is a TypeError and it cannot read the property 'nativeElement' because it

Being aware that I may not be the first to inquire about this issue, I find myself working on an Angular 5 application where I need to programmatically open an accordion. Everything seems to function as expected in stackblitz, but unfortunately, I am enco ...

Encountering a TypeScript issue with bracket notation in template literals

I am encountering an issue with my object named endpoints that contains various methods: const endpoints = { async getProfilePhoto(photoFile: File) { return await updateProfilePhotoTask.perform(photoFile); }, }; To access these methods, I am using ...

An error occurred during runtime while attempting to resolve all parameters for the UserService

I recently started using Ionic and I am trying to set up a sidebar with a user profile header, displaying the user's details as seen in other similar apps depending on who is logged in. Unfortunately, I have come across the following error: Runtime ...

Exporting modules in TypeScript using "module.exports"

While working on my Yeoman generator, I initially wrote it in JavaScript like this: "use strict"; var Generator = require("yeoman-generator"); var chalk = rquire("chalk"); module.exports = class extends Generator { initializing() { this.log( c ...

Configuring NextJs routes with multiple parameters

Seeking guidance on structuring files in Nextjs for handling multiple URL parameters. Can anyone offer advice? The given URL structure is: /api/upload?file=${filename}&fileType=${fileType} This is the current file structure: app api upload ...

What is the best way to store user data from an Angular App into the Firebase Realtime database?

As I delve into the world of Angular by following a tutorial, I find myself struggling with saving users to the Firebase database. Despite successfully logging in, the database remains empty. import { Injectable } from '@angular/core&apo ...

How should one go about creating and revoking a blob in React's useEffect function?

Consider this scenario: import { useEffect, useState, type ReactElement } from 'react'; async function getImage(): Promise<Blob> { // Some random async code const res = await fetch('https://picsum.photos/200'); const blob = ...

Seems like ngAfterViewInit isn't functioning properly, could it be an error on my end

After implementing my ngAfterViewInit function, I noticed that it is not behaving as expected. I have a hunch that something important may be missing in my code. ngOnInit() { this.dataService.getUsers().subscribe((users) => {this.users = users) ; ...

Learn how to implement React Redux using React Hooks and correctly use the useDispatch function while ensuring type-checking

I'm curious about the implementation of Redux with Typescript in a React App. I have set up type-checking on Reducer and I'm using useTypedSelector from react-redux. The only issue I have is with loose type-checking inside the case statements of ...

Loop through JSON results in Ionic using Angular

I am struggling to retrieve data from a JSON file in Object format using Typescript. When I try to fetch the data from the API, it doesn't display as expected. Typescript this.http.get('http://example.com/api') .subscribe((data) => { ...

Encountering an issue with NextJS 13 when utilizing the vectorstore recommended by Langchain, specifically receiving an error message stating that HNSWLib

Currently, I am building an application utilizing Langchain and OpenAI for assistance. My approach involves loading data using JSONLoader and intending to save it in a vectorstore. This way, I can provide specific answers to user queries based on the store ...

Issue TS1112: It is not possible to declare a class member as optional

I'm currently working on creating a movie catalog using Angular and Ionic. Within the Movie class, I have properties for id, title, image, and plot. On the initial page of the app, only the id, title, and image are displayed, while the plot is omitte ...

The 'api' property is not found within the 'MyService' type declaration

Currently, I am working on a tutorial where we are building an Angular service to send emails from a form using the Mailthis Email API. In the code for the service, I encountered an error related to the 'api' variable that states "Property ' ...

Setting up a routerLink from a component

My current routing is functioning well, however, I am interested in managing the same functionality from a component rather than directly in the HTML. How can I achieve this? HTML <a [routerLink]="[ '..', card.item ]">VIEW MORE</a> ...

What could be causing my Angular2 component to not properly use my template?

I have two components that I am working with. The first component is: import {Component} from 'angular2/angular2'; import {Navbar} from './navbar'; @Component({ selector: 'app' template: `<div class="col-md-12"> ...

What is the best way to pass a state within a route component in react-router?

... import { useNavigate, NavigateFunction } from "react-router"; ... function Form(): JSX.Element { const navigateToCountry = (country: string) => { // Code to navigate to country page with the given country } const [selectedCount ...