【发布时间】:2013-10-15 18:06:04
【问题描述】:
我在一个页面中有一组会话,我想使用 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>
这些只是需要测试的示例。
【问题讨论】:
-
您是想完全破坏其他用户的会话还是您自己的会话或其他什么?
-
会话删除成功,只是你看不到,因为浏览器缓存了结果。您只需刷新页面并检查分析器即可看到会话已被消除。
-
@Lughino 好的,我相信你的话,但为什么我没有收到回复消息? AJAX 应该通过
reponseText属性返回控制器中的响应消息。那么,我该怎么做才能看到这条消息? -
@Chausser 我只是想摆脱
name会话。 -
可能由于某种原因,ajax 响应失败。添加 .fail(function(event){console.log(event)}) 像 $.ajax(...).fail();通过这种方式,您可以获得有关请求的更多信息。
标签: php jquery ajax symfony twig