发出 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);
}
});
如何用相应的函数调用这个 Controller :
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 }
最佳答案
您的路径未被解释,请查看请求 url,您有 app-like-add
,而不是等效的 url。为避免此错误,您必须输入完整路径或安装一个包以用完整的 url 替换路径,如 FosJsRoutingBundle
:
https://github.com/FriendsOfSymfony/FOSJsRoutingBundle
此包允许您在 JavaScript 代码中公开路由。这意味着您将能够使用给定的参数生成 URL,就像您可以使用 Symfony2
核心中提供的 Router
组件一样。
在你的 yaml 中:
app-like-add:
pattern: /add-like
defaults: { _controller: AppBundle:Like:add }
options:
expose: true
在JS代码中:
Routing.generate('app-like-add')
关于javascript - 无响应 Ajax 请求 symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32158699/