ไม่ต้องสงสัยเลยว่า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