我正在使用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调用无关,但在控制器中处理错误的会话。
有人有想法吗?
答案 0 :(得分:1)
查看浏览器的调试工具。
我假设您在Windows中使用Chrome,Ctrl+Shift+i
打开Chrome的调试工具,点击Network
标签,然后执行您的AJAX请求(点击按钮$('.addIdButton')
) ,然后调试工具将显示一条新记录,检查记录是否请求确实正常(状态为200表示确定,否则失败)