2011-07-03 42 views
5

Tôi có một phương pháp điều khiển từ lâu đã xử lý các yêu cầu JSON bằng cách phân tích cú pháp phần mở rộng đó, nhưng bây giờ tôi cần mở nó lên ajax miền chéo vì vậy tôi muốn cung cấp một biến thể JSONP bằng cách phân tích cú pháp mở rộng là tốt. Tôi đã cập nhật tệp routes.php của mình:CakePHP, mở rộng và bố trí

Router::parseExtensions('json', 'jsonp'); 

Cho đến giờ tất cả đều tốt, nhưng hạnh phúc sẽ kết thúc khi kết quả được hiển thị. Trong khi tiện ích mở rộng .json tự động chọn bố cục json/default.ctp, nội dung .jsonp tiếp tục áp dụng bố cục mặc định không cụ thể (và tất cả nội dung HTML không cần thiết của nó). Tôi đã thử sử dụng RequestHandler::setContent() để đặt loại nội dung phản hồi thành cả hai jsonjs, nhưng điều đó dường như không kích hoạt cuộc gọi đến một thư mục bố cục cụ thể.

Có ai biết điều gì xác định thư mục bố cục cụ thể theo nội dung nào được gọi không? Tôi đã thử tạo jsonp/default.ctp và tôi đã thử tạo bố cục js/default.ctp với kết quả JSONP của mình, nhưng dường như không có gì tương tác. Tôi chỉ nhận được mặc định bình thường.

Bất kỳ thông tin chi tiết nào về cách tiện ích/loại nội dung được ánh xạ tới các thư mục bố cục này sẽ được đánh giá cao.

Trả lời

1

tôi đã tạm thời giải quyết điều này bằng cách thiết lập một cách rõ ràng giá trị layoutPath:

$this->layoutPath = $params['url']['ext']; 

này cảm thấy như một trong những điều mà phải có một giải pháp tốt hơn, nhưng có lẽ đây là nó. Tôi sẽ để câu hỏi mở một chút với hy vọng rằng ai đó có một giải pháp liên quan đến automagic của Cake.

Các vấn đề liên quan