Нет сомнений, что application/json
- лучший MIME тип для ответа JSON.
Но у меня был некоторый опыт использования application/x-javascript
из-за некоторых проблем со сжатием. Моей хостинговой средой является виртуальный хостинг с GoDaddy . Они не позволяют мне изменять конфигурации сервера. Я добавил следующий код в мой web.config
файл для сжатия ответов.
<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"/>
Благодаря этому страницы .aspx были сжаты с помощью g-zip, а ответы JSON - нет. Я добавил
<add mimeType="application/json" enabled="true"/>
в разделах статического и динамического типов. Но это не сжимает ответы JSON вообще.
После этого я удалил этот недавно добавленный тип и добавил
<add mimeType="application/x-javascript" enabled="true"/>
в разделах как статического, так и динамического типов, а также изменил тип ответа в
.ashx (асинхронный обработчик) до
application/x-javascript
И теперь я обнаружил, что мои ответы в формате JSON были сжаты с помощью g-zip. Поэтому я лично рекомендую использовать
application/x-javascript
только если вы хотите сжать ответы JSON в общедоступной среде . Потому что в виртуальном хостинге они не позволяют изменять конфигурации IIS .