【问题标题】:Remove an element from session using symfony2 and ajax使用 symfony2 和 ajax 从会话中删除元素
【发布时间】:2015-09-07 13:29:38
【问题描述】:

我有一个问题,所以我尝试使用 ajax 从会话中删除一个元素。 我的路线是:

shoppingCart_delete:
path: /cartItems/delete/{id}
defaults: { _controller: ShopDesktopBundle:Basket:delete }
requirements:
    id:  \d+
    _method:  POST

我的功能删除:

public function deleteAction($id){
    $sessionVal = $this->get( 'session' )->get( 'aBasket' );
    unset($sessionVal[$id]);
}

我的 ajax 代码:

<script type="application/javascript">
    function removeItemFromSession(id){
        console.log(id);
        var id = id,
        url_deploy = "http://"+window.location.hostname+":1234"+"/cartItems/delete";
        console.log(url_deploy);
        $.ajax({
            url: url_deploy,
            type: "POST",
            async: true,
            data: { id:id},
            success : function(data){
                document.location.reload(true);
            },
            error: function(){
            }
        });
    }
</script>

还有我的html:

<a href="#" onclick="removeItemFromSession({{ product['product_id'] }})" title="Remove this item">Remove</a>

我在控制台中看到错误:

"NetworkError: 404 Not Found - http://shop.com:1234/cartItems/delete"

你能帮帮我吗?提前谢谢!!

【问题讨论】:

  • 当你直接尝试访问shop.com:1234/cartItems/delete URL时会发生什么?
  • 我得到一个 404 :找不到“GET /cartItems/delete”的路线
  • 这是预期的,因为您已经定义了到“/cartItems/delete/{id}”的路径,而不仅仅是“/cartItems/delete”。尝试访问“/cartItems/delete/1”,我确信您的 deleteAction 函数将被执行。这里的“1”可以是任何id。
  • 您在 ajax 中指定了 POST 方法。尝试使用 GET 方法,以便您的 url 将与定义的路由文件匹配。并且参数 id 将作为 url 参数传递

标签: javascript php jquery ajax symfony


【解决方案1】:

我猜,您需要进行以下更改:

1. From path: /cartItems/delete/{id} to path: /cartItems/delete
2. public function deleteAction($id){ to 
 public function deleteAction(Request $request){
  if ($id = $request->request->get('id', false)) {
       ...........
  }
}

简而言之,我们从 URL 中省略了“id”键,并通过“请求”访问它。

【讨论】:

  • 现在我得到:500 内部服务器错误
  • 那是不同的问题。尝试在函数中回显一些文本,看看是否有效。您还需要在控制器类开始之前“使用”SF 的请求类。使用 Symfony\Component\HttpFoundation\Request;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
  • 2015-06-15
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多