Il ne fait aucun doute que application/json
c'est le meilleur type MIME pour une réponse JSON.
Mais j'avais une certaine expérience où je devais utiliser à application/x-javascript
cause de certains problèmes de compression. Mon environnement d'hébergement est l'hébergement partagé avec GoDaddy . Ils ne me permettent pas de modifier les configurations de serveur. J'avais ajouté le code suivant à mon web.config
fichier pour compresser les réponses.
<httpCompression>
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
En utilisant cela, les pages .aspx ont été compressées avec g-zip, mais pas les réponses JSON. J'ai ajouté
<add mimeType="application/json" enabled="true"/>
dans les sections types statique et dynamique. Mais cela ne compresse pas du tout les réponses JSON.
Après cela, j'ai supprimé ce type nouvellement ajouté et ajouté
<add mimeType="application/x-javascript" enabled="true"/>
dans les sections des types statiques et dynamiques et a changé le type de réponse dans
.ashx (gestionnaire asynchrone) vers
application/x-javascript
Et maintenant, j'ai trouvé que mes réponses JSON étaient compressées avec g-zip. Je recommande donc personnellement d'utiliser
application/x-javascript
uniquement si vous souhaitez compresser vos réponses JSON sur un environnement d'hébergement partagé . Parce que dans l'hébergement partagé, ils ne vous permettent pas de modifier les configurations IIS .