【发布时间】:2017-01-29 10:36:19
【问题描述】:
我正在使用 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 调用无关,而是与控制器中的错误会话处理有关。
有人有想法吗?
【问题讨论】:
-
似乎都正确,在检查会话属性之前尝试刷新页面
-
重新加载页面以查看新的会话属性。