【问题标题】:How to make/handle AJAX requests in Symfony 2如何在 Symfony 2 中制作/处理 AJAX 请求
【发布时间】: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


【解决方案1】:

您是否检查过您的 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不分隔

您可以通过以下两种方式之一解决此问题

  1. 自己输入分隔符

    url: "{{ url('ajax_remove_session') }}",
    
  2. 让 Twig 为你做这件事

    url: {{ url('ajax_remove_session')|json_encode|raw }},
    

【讨论】:

猜你喜欢
  • 2022-01-11
  • 2018-04-01
  • 2012-08-02
  • 1970-01-01
  • 2012-05-18
  • 2015-10-13
  • 1970-01-01
  • 2010-09-06
相关资源
最近更新 更多