发出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。
路线的定义如下:
app-like-add:
pattern: /add-like
defaults: { _controller: AppBundle:Like:add }
答案 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"