Non c'è dubbio che application/json
sia il miglior tipo MIME per una risposta JSON.
Ma ho avuto qualche esperienza in cui ho dovuto usare a application/x-javascript
causa di alcuni problemi di compressione. Il mio ambiente di hosting è hosting condiviso con GoDaddy . Non mi consentono di modificare le configurazioni del server. Avevo aggiunto il seguente codice al mio web.config
file per comprimere le risposte.
<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"/>
Usando questo, le pagine .aspx sono state compresse con g-zip ma le risposte JSON no. Ho aggiunto
<add mimeType="application/json" enabled="true"/>
nelle sezioni dei tipi statici e dinamici. Ma questo non comprime affatto le risposte JSON.
Dopo di che ho rimosso questo tipo appena aggiunto e aggiunto
<add mimeType="application/x-javascript" enabled="true"/>
in entrambe le sezioni dei tipi statici e dinamici e modificato il tipo di risposta in
.ashx (gestore asincrono) in
application/x-javascript
E ora ho scoperto che le mie risposte JSON erano compresse con g-zip. Quindi raccomando personalmente di usare
application/x-javascript
solo se vuoi comprimere le tue risposte JSON su un ambiente di hosting condiviso . Perché nell'hosting condiviso, non consentono di modificare le configurazioni IIS .