【问题标题】:Zend Routes giving 500 error, messing with Ajax callsZend Routes 给出 500 错误,与 Ajax 调用混淆
【发布时间】:2012-08-14 01:55:08
【问题描述】:

我刚刚在我的 Zend 站点的引导程序中设置了几个路由,这是其中之一:

$route = new Zend_Controller_Router_Route('organizer/haveItem',
                                                array('controller'=> 'organizer',
                                                'action'=> 'haveItem')); 
    $router->addRoute('have', $route);

另一个新的基本相同,将“拥有”替换为“想要”。我这样做是为了让任何 Ajax 调用都被这些路由捕获,而不是陷入我的索引操作,此时它们基本上永远丢失了,因为如果我尝试从那里重定向到正确的操作,我只会陷入无限环形。

我的问题是,当我使用这些路由时,我收到 500 错误。我相信这是因为这些路由正在从 Ajax 调用中删除参数化变量,或者因为任何参数化变量导致调用与这些路由不匹配并落入索引操作。这实际上会导致 500 错误吗?如果是,我该如何调整这些路由以考虑 Ajax 发布变量?

【问题讨论】:

    标签: ajax jquery zend-route


    【解决方案1】:

    Zend 的路由器可以完美地通过路由传递 ajax 变量。问题是我有多个路由到同一个控制器。就在拥有和想要的路线下方,我有这条路线:

    $route = new Zend_Controller_Router_Route('organizer/:filter/:page',
                                                    array('controller'=> 'organizer',
                                                    'action'=> 'index',
                                                    'page'=>1)); 
        $router->addRoute('organizer searches', $route);
    

    这引起了我的需求和需求。当我将这个移到列表顶部时,它工作得非常好。我相信 Zend 路由器自下而上评估路由,如 Zend 文档http://framework.zend.com/manual/en/zend.controller.router.html 中所述,因此您必须将更具体的路由放在列表底部。例如,我的所有在 Organizer 段之后带有关键字的路由都必须位于带有 :filter 的任何路由下方,以便它们首先被捕获。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 2017-01-24
      • 2014-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多