Réponse Json télécharger dans IE(7~10)
Je suis en train de télécharger un fichier et de retourner une réponse json concernant les propriétés(nom, taille, etc) du fichier. Il fonctionne très bien dans tous les navigateurs sauf IE.
IE tente de télécharger le JSON sous la forme d'un fichier !
J'ai IE10 et de le tester sur IE7 à 10 en changeant de navigateur mode et le mode de document à partir du débogueur.
Je suis en utilisant asp.net mvc4, l'upload d'un fichier d'action ont HttpPost attribut et je suis de retour réponse json à l'aide de retour Json(monobjet);
Et voici mes en-têtes http
Demande
Key Value
Request POST /File/UploadFile/ HTTP/1.1
Accept text/html, application/xhtml+xml, */*
Referer http://localhost:63903/
Accept-Language en-NZ
User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Content-Type multipart/form-data; boundary=---------------------------7dc1e71330526
Accept-Encoding gzip, deflate
Host localhost:63903
Content-Length 1377002
DNT 1
Connection Keep-Alive
Cache-Control no-cache
Réponse
Key Value
Response HTTP/1.1 200 OK
Server ASP.NET Development Server/11.0.0.0
Date Tue, 18 Dec 2012 23:44:19 GMT
X-AspNet-Version 4.0.30319
X-AspNetMvc-Version 4.0
Cache-Control private
Content-Type application/json; charset=utf-8
Content-Length 154
Connection Close
J'ai essayé quelques suggestions, mais jusqu'à présent de retour à la case départ !
- Alors... quel est le problème ?
- mon mauvais... c'est à dire essaie de le télécharger sous forme d'un fichier json
- double possible de IE invite à ouvrir ou à enregistrer le résultat json à partir du serveur
Vous devez vous connecter pour publier un commentaire.
Vous devrez retourner le json comme
text/html
depuis IE ne sais pas quoi faire avecapplication/json
contenu..Pas certain, mais il pourrait fonctionner (et il serait plus juste si elle ne) à utiliser
text/x-json
UpdateTargetId
propriété deAjaxOptions
, si vous le retour de Contenu de Type "text/html", il remplacera le UpdateTargetId du contenu avec le Json de votre retour. Si le Type de Contenu est "application/json", il fonctionne comme prévu. Est-il un moyen de contourner cela?Même si cette question est une question de quelques mois, je pense que je vais ajouter une suggestion, juste au cas où quelqu'un d'autre est à l'aide de
ASP.NET MVC 3 or 4
et se heurte à ce problème.Dans mon expérience, quand IE tente de télécharger la réponse Json dans un fichier tout ce que vous avez à faire pour corriger le problème est d'ajouter une référence à
jquery.unobtrusive
à votre vue.par exemple:
Une fois en place, IE ne plus essayer de télécharger la réponse json à partir d'un JsonResult d'action du contrôleur. Pas besoin de changer le type de réponse etc..