我有一个控制器方法,一直通过解析JSON请求来处理它,但现在我需要打开它以进行跨域ajax,因此我想通过解析该扩展名提供JSONP变体。 我已经更新了routes.php
文件:
Router::parseExtensions( 'json', 'jsonp' );
到目前为止一切都很好,但是当结果被渲染时,这种幸福感就消失了。虽然
.json
扩展自动选择 json/default.ctp
布局,但 .jsonp
内容仍然采用非特定的默认布局(以及所有不必要的 HTML 内容)。我尝试使用 RequestHandler::setContent()
将响应内容类型设置为 json
和 js
,但似乎并没有触发调用给定布局目录的操作。有人知道是什么决定了调用哪个特定内容的布局目录吗?我尝试创建
jsonp/default.ctp
和一个包含我的 JSONP 结果的 js/default.ctp
布局,但似乎都没有生效。我只得到了正常的默认值。非常感谢任何关于如何将扩展/内容类型映射到这些布局目录的见解。