Soumettre un fichier avec jQuery.ajax donne TypeError
Je suis en train d'essayer de soumettre un fichier à partir d'un formulaire à l'aide de jQuery ajax
méthode:
var ofile=document.getElementById('image').files[0];
var formdata = new FormData();
formdata.append("image",ofile);
$.ajax({
url:'elements/save_elements',
data:formdata,
type:'POST'
});
Cette résultats dans l'erreur TypeError: 'append' called on an object that does not implement interface FormData
.
Quelles sont les causes de cette erreur? Il ne se passe pas sur le réel formdata.append
, mais à l'intérieur de jQuery.
- Quel navigateur utilisez-vous?
- okk, pas de probs , monsieur, j'ai eu la réponse
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème avec le même code. Il y a une grave pénurie d'informations sur cette erreur, donc, depuis l'OP n'a pas de préciser:
Avec un peu de débogage, j'ai réalisé l'erreur a été d'être jeté par l'appel ajax dans les profondeurs de jquery, pas de l'ajouter.
S'avère que j'avais oublié d'ajouter
processData: false, contentType: false
à la requête ajax; cela a résolu le problème.processData
commeproccessData
, vous aurez également la même erreur. Raisonnable.Il fonctionne très bien lorsque vous ajoutez ce qui suit à l'ajax objet:
Donc, il devrait ressembler:
L'ajout de ces paramètres pour ajax résoudre le problème