我正在尝试在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;在结果?
答案 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;
}
}