Tidak ada keraguan bahwa itu application/json
adalah MIME terbaik tipe untuk respons JSON.
Tapi saya punya pengalaman di mana saya harus menggunakan application/x-javascript
karena beberapa masalah kompresi. Lingkungan hosting saya adalah shared hosting dengan GoDaddy . Mereka tidak mengizinkan saya untuk mengubah konfigurasi server. Saya telah menambahkan kode berikut ke web.config
file saya untuk mengompres respons.
<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"/>
Dengan menggunakan ini, halaman .aspx dikompres dengan g-zip tetapi respons JSON tidak. saya tambahkan
<add mimeType="application/json" enabled="true"/>
di bagian tipe statis dan dinamis. Tapi ini tidak mengompres respons JSON sama sekali.
Setelah itu saya menghapus jenis yang baru ditambahkan ini dan menambahkan
<add mimeType="application/x-javascript" enabled="true"/>
di bagian tipe statis dan dinamis, dan mengubah tipe respons di
.ashx (penangan asinkron) ke
application/x-javascript
Dan sekarang saya menemukan bahwa respons JSON saya dikompres dengan g-zip. Jadi saya pribadi merekomendasikan untuk menggunakan
application/x-javascript
hanya jika Anda ingin mengompres respons JSON Anda di lingkungan hosting bersama . Karena dalam shared hosting, mereka tidak memungkinkan Anda untuk mengubah konfigurasi IIS .