简单请求服务器Symfomny2

时间:2015-09-08 21:51:57

标签: jquery ajax symfony

我正在尝试在Sympfony2中实现无限滚动选项。

控制器:

public function indexAction(Request $request)
{ 
    if (!$request->isXmlHttpRequest()) {
        return $this->render(
            'UsuarioBundle:Default:index.html.twig'
        );
    } else {
        return new Response("Ajax ok");
    }
}

jquery的

$(function(){
    var data={
            type:'1'                           
};
    var i = 0;
  $(window).scroll(function(){
   //cuando llegas al final de la página
    if (document.body.scrollHeight - $(this).scrollTop() <= $(this).height()){
            agregarContenido();
        }
    });
  function agregarContenido(){
        //Agregar el siguiente contenido a mostrar
        var path = "/";
         $.ajax({
      type: 'POST',
      dataType :   'json',
      data: data,
      url:  path,
    success: function(response) {
          console.log(response);
      }
    });
    }
});

和Routing.yml

index:
path:    /
    defaults:  { _controller: UsuarioBundle:Default:index }

代码不起作用,它从不打印&#34; ajax ok&#34;。但是当我滚动时,Ajax请求总是被发送到服务器。

我的问题是,如何打印&#34; ajax ok&#34;在结果?

2 个答案:

答案 0 :(得分:1)

您在JS中指定的dataType会出现问题。你的控制器返回Response对象,它是普通的HTML,但是你的JS对应人期望json,所以这不起作用。

尝试将dataType设为html ...

答案 1 :(得分:0)

在您的控制器中,您应该

use Symfony\Component\HttpFoundation\JsonResponse;

public function indexAction(Request $request)
{ 
    if (!$request->isXmlHttpRequest()) {
        return $this->render(
            'UsuarioBundle:Default:index.html.twig'
        );
    } else {
        $response = new JsonResponse();
        $response->setData(array(
            'status' => 1,
            'result' => 'Ajax ok'
        ));

        return $response;

    }
}