ฉันได้เริ่มต้นการสร้างโปรแกรมประยุกต์บนเว็บโดยใช้Joomla กรอบ ประกอบด้วยเว็บเพจที่เรียบง่ายซึ่งจะแสดงใน iFrame พร้อมกับ API ที่จะใช้ในการอัปเดตเนื้อหาด้วย AJAX
ฉันติดตามการเริ่มต้นใช้งานนักแต่งเพลงและ Joomla! บทความและให้แอป Frameworkทำงานและรันอยู่ ฉันได้ปรับแต่งการแสดงผล HTML เริ่มต้นให้ทำงานกับ iFrame ของฉันและได้เริ่มต้นกับ API แล้ว ฉันใช้ News เป็นเทมเพลตและสร้างคอนโทรลเลอร์โมเดลตารางและมุมมองสำหรับ API ของฉันซึ่งทั้งหมดนั้นใช้งานได้ดี จากนั้นฉันสร้างเทมเพลต Twig ที่เรียบง่ายซึ่งคืนค่าการแสดงข้อมูล JSON ของฉันแบบนี้
{{ items|json_encode|raw }}
จนถึงตอนนี้ดีมาก แต่ฉันได้รับส่วนหัวนี้คืนซึ่งจะทำให้เกิดปัญหาเมื่อใช้ AJAX กับ jQuery:
Content-Type:text/html; charset=utf-8
ฉันคิดว่ามันจะเป็นกรณีง่าย ๆ ในการเพิ่มสิ่งนี้ แต่ไม่ว่าฉันจะใส่ไว้ที่ไหนมันจะไม่เปลี่ยนส่วนหัวที่ส่งคืน:
$this->app->setHeader('Content-Type', 'application/json', true);
ฉันรู้ว่า setHeader ทำงานเหมือนว่าฉันเปลี่ยนชื่อฉันเห็นส่วนหัวใหม่ส่งคืนดังนั้นฉันคิดว่ามันถูกเขียนทับในภายหลังในการดำเนินการ
ดังนั้นคำถามของฉันคือฉันจะไปในทางที่ถูกต้อง? มุมมองของฉันขยาย DefaultHtmlView ซึ่งรู้สึกผิดฉันควรสร้าง DefaultJsonView หรือไม่ ฉันจะตั้งค่าประเภทเนื้อหาที่ถูกต้องหรือมีวิธีที่ดีกว่าในการส่งคืน JSON ได้อย่างไร
ความช่วยเหลือของคำแนะนำที่สามารถให้เกี่ยวกับวิธีที่ดีที่สุดในการใช้ Joomla Framework เพื่อสร้าง API จะได้รับการชื่นชมอย่างมาก