如何使用Symfony和Jquery进行POST Ajax请求

9 浏览
0 Comments

如何使用Symfony和Jquery进行POST Ajax请求

我需要在我的Symfony项目中存储一些地图参数,为此我需要在视图中实现一些Ajax,以便能够将一些信息传递给控制器。

我阅读了文档,尝试编写了一些代码,但无法使其正常工作。而且,调试Ajax真的很痛苦。

下面是控制器部分:

 /**                                                                                   
 * @Route("/ajax", name="_recherche_ajax")
 */
public function ajaxAction()    
{
    $isAjax = $this->get('Request')->isXMLHttpRequest();
    if ($isAjax) {         
        return new Response('这是Ajax响应');
    }
    return new Response('这不是Ajax!', 400);
}

以及JS代码:

map.on('zoomend', function(e) {
    // 使用回调参数 e
    console.log('缩放级别:' + e.target.getZoom());
    $.ajax({
        type: "POST",
        url: "/recherche/ajax",
        data: {
           zoom: e.target.getZoom()
        },
        dataType: "json",
        success: function(response) {
            console.log(response);
        }
    });
});

我检查了url recherche/ajax,它确实存在并返回了预期的 '这不是Ajax'。但是console.log没有返回任何值...

这样做的方式正确吗?

编辑:

看起来控制器无法处理POST请求。我尝试修改注解为:

 /**                                                                                   
 * @Route("/ajax", name="_recherche_ajax")
 * @Method({"GET", "POST"})
 */

但它返回:

([Semantical Error] 方法MySite\SiteBundle\Controller\RechercheController::ajaxAction()中的注解“@Method”从未被导入。您可能忘记为该注解添加“use”语句了吗?) 

0