Avoir un ensemble de code ajax activé par le prototype qui fonctionne dans tous les navigateurs autres que IE. Dans IE8, le JSON, qui sinon est renvoyé à la fonction de gestionnaire onSuccess spécifiée dans Ajax.Request, est jeté dans un flux de téléchargement de fichier qui apparaît et vous invite à indiquer où télécharger.Problème avec le prototype Ajax.Request dans Internet Explorer 8 téléchargement de fichier d'invite
askForm = $('askForm');
var askUrl = '.';
var askParameters = askForm.serialize(true);
askForm.disable();
var askAjax = new Ajax.Request(
askUrl, {
method: 'post',
parameters: askParameters,
onSuccess: handleResults,
onFailure: handleError
}
);
function handleError(transport) {
alert('Please refresh this page, an error occurred in processing at the server.');
}
function handleResults(transport) {
...
}
Il y a plus de code dans la fonction handleResults, mais il n'est jamais appelé. Après avoir débogué, l'invite de téléchargement se produit lorsque la fonction Ajax.Request est appelée.
Le nom de fichier IE8 vous invite à télécharger les modifications à chaque fois, 4 valeurs hexadécimales apparemment aléatoires (8 caractères) sans extension de nom de fichier. Et le contenu du fichier est la réponse pure JSON du serveur ...
{"question": ["Enter your question*"], "name": ["Enter your name (First L.)*"], "sender": ["Enter your e-mail*"]}
serait beaucoup obligé pour tous les conseils ici. Cela se produit sur Snow Leopard avec IE8 fonctionnant dans VMWare Fusion accédant à un site fonctionnant via apache/django/python sur OS X. Cependant, depuis Chrome et Firefox dans la machine VMWare Windows XP fonctionne correctement, semble pointer directement sur IE8 comme le coupable .
La réponse est envoyée à l'aide de l'objet django.http.HttpResponse spécifiant mimetype = "text/javascript" - Peut-être que je devrais envisager de modifier cela ou d'ajouter d'autres en-têtes? – sansjoe
Addendum: Juste essayé mime-type comme 'application/json' avec aucun changement dans le comportement de IE8. – sansjoe