我在页面中有一组会话,我想使用AJAX删除它。即点击链接,无需浏览新页面,只需删除会话,并在成功时显示消息。
有人提出了这种方法,但我似乎无法删除会话,也没有获得任何成功/失败消息。
示例控制器:
use Symfony\Component\HttpFoundation\JsonResponse;
// ...
public function ajaxRemoveSessionAction()
{
// Destroy the desired session
$session = $this->getRequest()->getSession();
$session->remove('name');
return new JsonResponse(array('success' => true));
}
路由示例:
ajax_remove_session:
pattern: /remove-session
defaults: { _controller: FooTestBundle:Page:ajaxRemoveSession }
示例小枝:
<a href="#" id="remove_session">Remove session</a>
<script type="text/javascript">
$(document).ready(function() {
$('#remove_session').click(function(){
event.preventDefault();
$.ajax({
url: {{ url('ajax_remove_session') }},
cache: false,
success: function(html){
// do something on success
}
});
});
});
</script>
这些只是需要测试的例子。
答案 0 :(得分:2)
您检查过JavaScript控制台了吗?它看起来不像是在输出有效的JavaScript
这一点
$.ajax({
url: {{ url('ajax_remove_session') }},
cache: false,
success: function(html){
// do something on success
}
});
最终看起来像这样
$.ajax({
url: /remove-session,
cache: false,
success: function(html){
// do something on success
}
});
看到错误?网址没有分隔
您可以通过以下两种方式之一解决此问题
自己填写分隔符
url: "{{ url('ajax_remove_session') }}",
让Twig为你做这件事
url: {{ url('ajax_remove_session')|json_encode|raw }},