JavaScript: Comment ouvrir un fichier renvoyé via AJAX

Ceci est similaire à: Comment ouvrir un fichier à l'aide de JavaScript?

Objectif: récupérer/ouvrir un fichier sur une image double-cliquez

function getFile(filename){
   //setting mime this way is for example only
   var mime = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';

   jQuery.ajax({ url      : 'get_file.pl',
                 data     : {filename:filename}, 
                 success  : function(data){
                               var win = window.open('','title');
                               win.document.open(mime);
                               win.document.write(data);
                               win.document.close();
                            }
               });
}

jQuery('#imgID').dblclick(function(){ 
   getFile('someFile.docx');
});

Je le fais sur le dessus de ma tête, mais je pense que le ci-dessus serait de travailler pour les fichiers texte, mais pas binaire. Est-il un plugin qui fait cela correctement? L'idéal serait d'ouvrir le fichier dans le navigateur (ou l'application), plutôt que de le télécharger, mais je doute que ce soit un rêve. Si le fichier doit être téléchargé avec le dialogue ouvrir/enregistrer, c'est bien.


Edit:

Un élément d'information que j'ai oublié de mentionner, c'est que j'aimerais que cela soit une requête POST. C'est en partie pourquoi j'ai été à la recherche à l'AJAX pour commencer. J'ai vu des solutions de contournement qui ont créé des formulaires/iframe pour faire quelque chose de similaire, mais j'ai été à la recherche pour un meilleur gestionnaire de retour d'info.

Autant que je sache, les navigateurs éviter l'application directe de l'exécution (pour des raisons de sécurité, je crois), sauf si un plugin est installé sur le navigateur (flash, adobe reader, etc), ou d'un gestionnaire a été attribué (comme les liens magnet). Sinon, il ne vous permettent de sauvegarder le fichier et l'ouvrir manuellement.
Quelle est la différence similaire à la question que vous avez lié?
bonne question. (1) la question que je liée à l'utilisation de Prototype et dans mon exemple j'utilise jQuery; je ne suis pas sûr si il ya une différence dans le retour de l'objet de leur requête AJAX, mais je pense que jQuery data retourne texte/chaîne. (2) je n'ai pas précisé un détail crucial, que je tiens à éviter une requête GET.
là encore, la réponse dans la page à l'est de traiter avec les responseText, donc je suppose qu'ils étaient semblables à cet égard; toutefois, cette question a été de près de 3 ans et beaucoup de choses ont changé en javascript depuis lors, en particulier avec l'adoption plus large de HTML5.

OriginalL'auteur vol7ron | 2012-06-12