没有响应Ajax请求symfony2

时间:2015-08-22 17:08:08

标签: javascript php jquery ajax symfony

发出ajax POST请求,没有任何回复:

这是我的ajax请求:

$.ajax({
        method: 'POST',
        url: "{{ path('app-like-add') }}",
        data: { imageId: id },
        success: function(response) {
            if (response == 'success') {
                $('#'+ id).removeClass('like');
                $('#'+ id).addClass("like-success");
            } else {
                alert('no :(');
            }
        },
        error: function(response){
            alert('fail');
            console.log(response);
        }
    });

如何使用各自的功能调用此控制器:

class LikeController extends Controller {

  public function addAction(Request $request)
  {
    return new JsonResponse('success');
  }
}

但我什么都没得到,奇怪的是我得到200 OK。

Ajax Reponse

路线的定义如下:

app-like-add:
pattern:               /add-like
defaults:              { _controller: AppBundle:Like:add }

2 个答案:

答案 0 :(得分:2)

您的路径未被解释,请查看请求网址,您有app-like-add,而不是等效的网址。要避免此错误,您必须放置完整路径或安装捆绑包以使用FosJsRoutingBundle之类的完整网址替换路径:

https://github.com/FriendsOfSymfony/FOSJsRoutingBundle

此捆绑包允许您在JavaScript代码中公开路由。这意味着您将能够使用给定参数生成网址,就像使用Router核心中提供的Symfony2组件一样。

在你的yaml:

app-like-add:
    pattern:               /add-like
    defaults:              { _controller: AppBundle:Like:add }
    options:
        expose: true

在JS代码中:

Routing.generate('app-like-add')

答案 1 :(得分:1)

您传递的网址不正确,请更改为常规网址

url: "/add-like"