【问题标题】:Disabling layout for AJAX module禁用 AJAX 模块的布局
【发布时间】:2011-09-22 12:23:55
【问题描述】:

如何禁用 AJAX 模块的布局? 我已经创建了模块并尝试将条目添加到 view.yml 中,将模块称为 ajax:,但它不起作用。 目前,我使用 $this->setLayout(false),这不是很好... 此外,根据this doc,不推荐使用 view.yml。

【问题讨论】:

    标签: symfony1 symfony-1.4


    【解决方案1】:

    你不应该这样做。 XHR 请求无需布局即可自动呈现。

    【讨论】:

    • Symfony 如何识别它是 XHR?
    • JavaScript 库将向任何 Ajax 请求添加额外的 HTTP 请求标头“X-REQUESTED-WITH: XMLHttpRequest”。
    • 如何让布局返回?现在我的 AJAX 需要它。
    • $this->setLayout('layout');在行动内部应该做的伎俩
    【解决方案2】:

    关于 symfony 如何识别它是 XHR 的问题。你可以在 symfony 中使用一个函数来测试请求。如下所示

    $request->isXmlHttpRequest()
    

    如果请求来自 ajax 调用,则返回 true。在为 ajax 调用执行操作以及希望它仅响应 ajax 调用时非常有用的功能。

    【讨论】:

    • 感谢您的提示!我不会那样使用它。因为,如果它是 AJAX API,那还有什么请求?恕我直言,关闭模块的主要布局是更好的方法,而不是有条件。也许 isXmlHttpRequest() 是为那些在一个动作范围内混合不同类型请求的人设计的?
    猜你喜欢
    • 2012-03-08
    • 2013-07-26
    • 2011-05-06
    • 2012-10-22
    • 2013-01-18
    • 2013-04-09
    • 2018-06-21
    • 1970-01-01
    • 2013-02-02
    相关资源
    最近更新 更多