php - Symfony3 : Set Session Attribute with AJAX

标签 php jquery ajax symfony

我正在使用 Symfony 3.1,并尝试使用 AJAX 设置 session 属性。我之前在 Controller 中保存了 session 中的一些内容。现在我为 AJAX 请求创建了一个新 Controller ,如下所示:

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,就会发现没有新的 session 属性。我也用 cookies 尝试过,效果很好。所以我认为这与错误的 AJAX 调用无关,而是与 Controller 中错误的 session 处理有关。

有人有想法吗?

最佳答案

检查浏览器的调试工具。

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

关于php - Symfony3 : Set Session Attribute with AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39612112/

相关文章:

javascript - 无法从 Ajax getAllResponseHeaders 获取自定义 HTTP header 响应

java - 即使输入无效,Ajax 回调 onstart 也能工作

php - FB Graph API 查询在 PHP SDK 中不起作用

php - 在mysql中通过多次检查从数据库表中获取随机记录?

php - 函数调用返回 MySQL 语法错误 1064

javascript - AnythingSlider Fx 过渡闪烁

php - 如何在ajax中使用重音从数据库读取数据

javascript - 尝试根据 JQuery 属性包含更改 h1 标签

jquery - 动画 flex-basis 但保持 child 的初始高度/宽度

javascript - 超时在ajax post请求中不起作用