De secours pour FormData dans IE 8/9
FormData n'existe pas dans IE 8/9 mais j'ai besoin de cette fonctionnalité dans les navigateurs. Est-il agréable de secours pour cela?
Je voudrais essayer d'envoyer plus de données json, mais j'ai besoin de passer sur un fichier sur le serveur. J'ai ajouter ce fichier à la formData
dans les navigateurs modernes et il vous suffit de soumettre une XHR
demande. Parce que FormData
n'existe pas dans IE 8/9 de toute évidence, cela échoue.
//I cant seem to get this to work with a file.
$.ajax({
url: '/genericHandlers/UploadDocsFile.ashx',
type: "POST",
data: model.toJSON(),
contentType: 'application/json'
}).done(function (data) {
log('stuff happened!');
});
Peut-être une alternative est de créer un faux objet de formulaire en js puis ajouter les données à qui?
Vous devez vous connecter pour publier un commentaire.
Je ne connais qu'une seule solution possible, mais ce n'est pas vraiment 1-1 secours pour IEs. Il n'y a pas de communication possible API pour l'envoi de fichiers, parce que vous ne pouvez pas lier les champs de saisie dans les anciens navigateurs, comme dans un cadre moderne à l'aide de FormData. Mais vous pouvez envoyer le formulaire à l'aide d'un iframe. Pour ce cas vous pouvez utiliser jquery.formulaire plugin qui prennent en charge XHR DataForm et iframe (données envoie avec iframe lorsque le navigateur ne FormData prise en charge des API).
Vous pouvez envoyer le fichier manuellement à l'aide de XMLHttpRequests, il y a beaucoup d'informations sur ce ici.
Vous pouvez tester si le navigateur peut utiliser
FormData
premier objet avec:MDN a un cette fonction qui vous pourriez modifier pour la solution de repli:
Cette réponse n'est pas strictement adresse de la question, et pour cette raison, je comprends, si les Mods vais l'enlever.
Cependant, votre question était étroitement liée à un problème que j'ai été la recherche de ce qui est comment offrir de faire glisser et déposer des téléchargements via FormData() avec la dégradation gracieuse pour les anciens navigateurs?
Il y a une magnifique bibliothèque appelée dropzone.js qui offre une parfaite solution à mon problème. Peut-être la meilleure partie est que la bibliothèque dispose de dehors-de-le-boîte de dégradation gracieuse à l'appui de l'upload de fichiers sur les navigateurs plus anciens, comme détaillé ici.
Pour paraphraser la source:
J'espère que cette information aide à quelqu'un qui, comme moi, recherche pour un simple à mettre en œuvre et solution élégante pour les uploads de fichier.