Symfony3:使用AJAX设置会话属性

时间:2016-09-21 09:06:57

标签: php jquery ajax symfony

我正在使用Symfony 3.1,我尝试使用AJAX设置会话属性。我之前在控制器中保存了一些东西。现在我为AJAX请求创建了一个新的控制器,如下所示:

AjaxController.php

namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;


class AjaxController extends Controller {

    /**
     * @Route("/addId/{id}", name="addId")
     */
    public function hideCookieMessageAction(Request $request, $id) {

        $session = $request->getSession();
        $session->set('id', $id);

        $response = new Response();
        return $response;

    }

}

ajax.js

$(document).ready(function() {

    $('.addIdButton').click(function {

        var id = 1;

        $.ajax({
            type: 'POST',
            url: 'addId/' + id,
            async: false,
        })
        .fail(function() {
            alert('Couldn\'t add flat to wishlist');
        });

    });

});

我没有收到任何AJAX或JS错误消息。但是,如果我查看Symfony Profiler,则没有新的会话属性。我也用饼干尝试了它并且它有效。所以我认为它与错误的AJAX调用无关,但在控制器中处理错误的会话。

有人有想法吗?

1 个答案:

答案 0 :(得分:1)

查看浏览器的调试工具。

我假设您在Windows中使用Chrome,Ctrl+Shift+i打开Chrome的调试工具,点击Network标签,然后执行您的AJAX请求(点击按钮$('.addIdButton')) ,然后调试工具将显示一条新记录,检查记录是否请求确实正常(状态为200表示确定,否则失败)