ReactJS: Klarer ikke å sende JSON-data og PDF-fil i ett POST-kall


Jeg jobber med et GRAILS-ReactJs-basert prosjekt som involverer et scenario hvor jeg trenger å sende CV og JSON-data i én POST-forespørsel. Jeg klarer imidlertid å sende filen i én forespørsel, men dataene jeg får er null. Jeg bruker Grails-3 på serversiden og mottar POST-forespørselen som en multipart-fil. Jeg ønsker at både JSON og Multipart-filobjektet skal kombineres i ett objekt for å sendes til serveren, og ønsker å motta både filen og JSON-dataene på serversiden. Jeg har forsøkt å endre innholdstypen i headeren, men det fungerer ikke.

Svar #1

Du kan ikke sende JSON-data sammen med filen eller noen annen vedlegg. Du kan sende det som formdata til backend. Formdataene sendes som multipart-data til serveren med relevante grenser. Her er et eksempel på kode for din referanse. Du kan sende JSON-data sammen med formData som nøkkel-verdi-par.

export function postAttachment (fileData, fileName) {
  let formData = new FormData()
  formData.append('prop1', 'value1')
  formData.append('prop2', 'value2')
  formData.append('upload', fileData, fileName)
  return fetch('/your/endpoint', {
    headers: {
      'Accept': 'application/json',
      'header1': 'headerValue1'
    },
    method: 'POST',
    body: formData
  })
}

Håper dette hjelper. God koding!

Relaterte artikler