Php Symfony 2.3.,如何仅限制ajax调用的路由

Php Symfony 2.3.,如何仅限制ajax调用的路由,php,ajax,symfony-2.3,Php,Ajax,Symfony 2.3,我是Symfony 2的新手。我正在使用Symfony 2.3 我正在为我的路线使用yml文件。我希望某个路由仅限于Ajax调用。我怎样才能做到这一点?我发现了一个类似的解决方案,但它建议的是Symfony 2.4 所以,请帮助我如何实现它 目前,我已经在控制器ajax操作中编写了条件代码,如下所示,但我不知道如何处理对该路由的调用是否不是通过ajax进行的 if ($request->isXmlHttpRequest()) { // Some operations /

我是Symfony 2的新手。我正在使用Symfony 2.3

我正在为我的路线使用yml文件。我希望某个路由仅限于Ajax调用。我怎样才能做到这一点?我发现了一个类似的解决方案,但它建议的是Symfony 2.4

所以,请帮助我如何实现它

目前,我已经在控制器ajax操作中编写了条件代码,如下所示,但我不知道如何处理对该路由的调用是否不是通过ajax进行的

if ($request->isXmlHttpRequest()) {
   // Some operations    
   // Prepare the data array based on the Ajax request.
}

return $this->render('AcmeBundle:Ajax:index.html.twig', array('data' =>  $data));
我希望这个路由只能通过Ajax访问,否则它会抛出一些异常,比如无效路由或重定向到其他页面


提前感谢。

我不知道symfony 2.3中有这种方法,但在2.4版中,可以使用下面的路由配置来识别ajax请求

ajax_route:
    path:     /your-ajax-route
    defaults: { _controller: AcmeBundle:Ajax:index }
    condition: "request.isXmlHttpRequest()"
布线的注释版本也可以使用,如下所示:

/**
 * IndexAction
 *
 * @Route("/your-ajax-route/", name="ajax_route", condition="request.isXmlHttpRequest()")
 */

以上所述只是理解ajax请求的一个临时解决方案,否则头部可能会被操纵,并且您永远无法确定请求是否为xmlhttp。没有100%确定的方法来检查xml http请求。

我在symfony 2.3中不知道这种方法,但在2.4版中,可以使用下面的路由配置来识别ajax请求

ajax_route:
    path:     /your-ajax-route
    defaults: { _controller: AcmeBundle:Ajax:index }
    condition: "request.isXmlHttpRequest()"
布线的注释版本也可以使用,如下所示:

/**
 * IndexAction
 *
 * @Route("/your-ajax-route/", name="ajax_route", condition="request.isXmlHttpRequest()")
 */

以上所述只是理解ajax请求的一个临时解决方案,否则头部可能会被操纵,并且您永远无法确定请求是否为xmlhttp。没有100%确定的方法来检查xml http请求。

我在symfony 2.3中不知道这种方法,但在2.4版中,可以使用下面的路由配置来识别ajax请求

ajax_route:
    path:     /your-ajax-route
    defaults: { _controller: AcmeBundle:Ajax:index }
    condition: "request.isXmlHttpRequest()"
布线的注释版本也可以使用,如下所示:

/**
 * IndexAction
 *
 * @Route("/your-ajax-route/", name="ajax_route", condition="request.isXmlHttpRequest()")
 */

以上所述只是理解ajax请求的一个临时解决方案,否则头部可能会被操纵,并且您永远无法确定请求是否为xmlhttp。没有100%确定的方法来检查xml http请求。

我在symfony 2.3中不知道这种方法,但在2.4版中,可以使用下面的路由配置来识别ajax请求

ajax_route:
    path:     /your-ajax-route
    defaults: { _controller: AcmeBundle:Ajax:index }
    condition: "request.isXmlHttpRequest()"
布线的注释版本也可以使用,如下所示:

/**
 * IndexAction
 *
 * @Route("/your-ajax-route/", name="ajax_route", condition="request.isXmlHttpRequest()")
 */

以上所述只是理解ajax请求的一个临时解决方案,否则头部可能会被操纵,并且您永远无法确定请求是否为xmlhttp。没有百分之百确定的方法来检查xml http请求。

首先,可以操纵头。因此,带有一堆头的curl请求可以拉入ajax请求。我相信你可以用Symfony 2.3检查标题

use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();


或者您可以使用
$\u服务器['HTTP\u X\u REQUESTED\u WITH']==“xmlhttprequest”

首先,可以操作头。因此,带有一堆头的curl请求可以拉入ajax请求。我相信你可以用Symfony 2.3检查标题

use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();


或者您可以使用
$\u服务器['HTTP\u X\u REQUESTED\u WITH']==“xmlhttprequest”

首先,可以操作头。因此,带有一堆头的curl请求可以拉入ajax请求。我相信你可以用Symfony 2.3检查标题

use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();


或者您可以使用
$\u服务器['HTTP\u X\u REQUESTED\u WITH']==“xmlhttprequest”

首先,可以操作头。因此,带有一堆头的curl请求可以拉入ajax请求。我相信你可以用Symfony 2.3检查标题

use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();


或者您可以使用
$\u SERVER['HTTP\u X\u REQUESTED\u WITH']==“xmlhttprequest”

调用$request->SERVER->get以符合symfony2建议。这比$request->server->get的$\u SERVERcall符合symfony2建议要好。这比$request->server->get的$\u SERVERcall符合symfony2建议要好。这比$request->server->get的$\u SERVERcall符合symfony2建议要好。它比$\u服务器好