Không có nghi ngờ gì, đó application/json
là loại MIME tốt nhất cho phản hồi JSON.
Nhưng tôi đã có một số kinh nghiệm mà tôi phải sử dụng application/x-javascript
vì một số vấn đề về nén. Môi trường lưu trữ của tôi được chia sẻ lưu trữ với GoDaddy . Họ không cho phép tôi thay đổi cấu hình máy chủ. Tôi đã thêm đoạn mã sau vào web.config
tập tin của mình để nén phản hồi.
<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"/>
Bằng cách sử dụng này, các trang .aspx đã được nén bằng g-zip nhưng các phản hồi JSON thì không. Tôi đã thêm
<add mimeType="application/json" enabled="true"/>
trong phần loại tĩnh và động. Nhưng điều này hoàn toàn không nén các phản hồi JSON.
Sau đó tôi loại bỏ loại mới được thêm này và thêm
<add mimeType="application/x-javascript" enabled="true"/>
trong cả phần loại tĩnh và loại động và đã thay đổi loại phản hồi trong
.ashx (trình xử lý không đồng bộ) để
application/x-javascript
Và bây giờ tôi thấy rằng các phản hồi JSON của tôi đã được nén bằng g-zip. Vì vậy, cá nhân tôi khuyên bạn nên sử dụng
application/x-javascript
chỉ khi bạn muốn nén các phản hồi JSON của mình trên môi trường lưu trữ được chia sẻ . Bởi vì trong lưu trữ được chia sẻ, chúng không cho phép bạn thay đổi cấu hình IIS .