Tôi đã bắt đầu xây dựng một ứng dụng web bằng cách sử dụng Joomla Framework . Nó bao gồm một trang web đơn giản sẽ được hiển thị trong iFrame cùng với API sẽ được sử dụng để cập nhật nội dung với AJAX.
Tôi đã theo dõi Bắt đầu với Trình soạn nhạc và Joomla! bài viết và có ứng dụng Framework và chạy. Tôi đã tùy chỉnh đầu ra HTML mặc định để hoạt động cho iFrame của mình và đã bắt đầu với API. Tôi đã sử dụng Tin tức làm mẫu và tạo bộ điều khiển, mô hình, bảng và chế độ xem cho API của mình, tất cả đều hoạt động tốt. Sau đó, tôi đã tạo một mẫu Twig rất đơn giản trả về biểu diễn JSON của dữ liệu của tôi như thế này:
{{ items|json_encode|raw }}
Cho đến nay rất tốt nhưng tôi nhận được tiêu đề này được trả về, điều này sẽ gây ra vấn đề khi sử dụng AJAX với jQuery:
Content-Type:text/html; charset=utf-8
Tôi nghĩ rằng nó sẽ là một trường hợp đơn giản để thêm cái này nhưng cho dù tôi đặt nó ở đâu, nó không thay đổi tiêu đề được trả về:
$this->app->setHeader('Content-Type', 'application/json', true);
Tôi biết rằng setHeader đang hoạt động như thể tôi thay đổi tên, tôi thấy tiêu đề mới được trả về nên tôi cho rằng nó sẽ bị ghi đè sau đó trong quá trình thực thi.
Vì vậy, câu hỏi của tôi là, tôi đang đi về điều này đúng cách? Chế độ xem của tôi mở rộng DefaultHtmlView mà cảm thấy sai, tôi có nên tạo DefaultJsonView không? Làm cách nào tôi có thể đặt Loại nội dung chính xác hoặc có cách tiếp cận tốt hơn để trả về JSON?
Bất kỳ trợ giúp tư vấn nào có thể được cung cấp về cách tốt nhất để sử dụng Joomla Framework để xây dựng API sẽ được đánh giá rất cao.