Rob*_*son 5 cakephp cakephp-1.3
我有一个控制器方法,长期以来一直通过解析该扩展来处理JSON请求,但现在我需要打开它来跨域ajax,所以我想通过解析该扩展来提供JSONP变体.我已经更新了我的routes.php文件:
Router::parseExtensions( 'json', 'jsonp' );
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都很好,但结果呈现时幸福就结束了.当.json扩展程序自动选择json/default.ctp布局时,.jsonp内容将继续采用非特定的默认布局(以及所有不必要的HTML内容).我已经尝试使用RequestHandler::setContent()设置响应内容类型两json和js,但似乎并没有被什么触发调用一个给定的布局目录.
有谁知道什么决定了哪个特定于内容的布局目录被调用?我尝试创建jsonp/default.ctp,我尝试js/default.ctp使用我的JSONP结果创建一个布局,但似乎没有任何参与.我只是得到了正常的默认值.
任何有关扩展/内容类型如何映射到这些布局目录的见解都将非常感激.
我通过显式设置layoutPath值暂时解决了这个问题:
$this->layoutPath = $params['url']['ext'];
Run Code Online (Sandbox Code Playgroud)
这感觉像是必须有更好的解决方案的事情之一,但也许就是这样。我将暂时保留这个问题,希望其他人能找到涉及 Cake 自动魔法的解决方案。
| 归档时间: |
|
| 查看次数: |
671 次 |
| 最近记录: |