J'essaie d'envoyer un fichier à mon back-end via une demande de publication axios.
Voici l'erreur que j'ai actuellement:
cherrypy._cperror.HTTPError: (415, 'Attendu une entité de type de contenu application/json, text/javascript')
D'après ce que j'ai lu, je dois changer le type de contenu dans ma demande de publication, j'ai regardé autour de moi, j'essaie actuellement de le faire comme ceci:
handleUploadButton(e){
const upload_file = this.state.file;
const formData = new FormData();
formData.append('file', upload_file);
const request = axios.post(someUrl, formData, {headers: {
"Content-Type": "application/json"}
})
.then(function (response) {
console.log('successfully uploaded', upload_file);
});
}
Je ne sais pas si cela est pertinent, mais tout cela se produit via un formulaire de réaction. C'est mon Content-Type actuel: Content-Type: multipart/form-data; limite = ---- WebKitFormBoundaryBwjjjGuJEySeXdRU
Je ne sais pas ou aller d'ici. Toute aide serait grandement appréciée.
SignIn = () => {
console.log('login clicked')
let data = JSON.stringify({
password: this.state.password,
username: this.state.email
})
axios.post('url', data, {
headers: {
'Content-Type': 'application/json',
}
}
)
}
Cela a fonctionné pour moi:
const formData = new FormData();
formData.append('data', new Blob([JSON.stringify(data)], { type: 'application/json'}));
formData.append('file', file);
return axios.put(`${url}`, formData)
.then((response) => { console.log(response) })
.catch((error) => { console.log(error) })
Je l'ai pris d'une autre réponse à un problème similaire. Vous pouvez vérifier la réponse originale ici .
Vous pouvez corriger différents types catch () erreur en
.catch((error)=> {
if(error.response){
this.errors(error.response.message);
}else if (error.request) {
console.log('error.request');
} else {
console.log('Error', error);
}
console.log("rejected");
});