我正在使用 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/