Symfony2在每个AJAX请求上发回登录表单

时间:2016-03-20 17:24:31

标签: ajax symfony login

我正在使用Symfony 2.5.12进行后台图像上传表单(是的,我知道我有点过时了,但我会尽快处理:))。我想通过AJAX上传图像,但是在我发送的每个AJAX请求中,我都会获得302重定向到登录表单。

这是关于我的东西的JS部分(它被简化了,因为目前我只是想在没有302重定向到登录页面的情况下进行成功的AJAX调用,所以我删除了与数据相关的东西):

form.addEventListener('submit', event => {
    event.preventDefault();

    const url = form.getAttribute('action'); // '/admin/uploadImage'

    fetch(url)
        .then(response => response.json())
        .then(data => console.log(data))
        .catch(error => console.error(error));
});

这是我在我的控制器中的动作,绑定到/ admin / uploadImage URL:

public function uploadAction() {
    return new JsonResponse(array('test' => 'hello world'));
}

每个/ admin URL都需要ROLE_ADMIN角色,我在security.yml中定义了它:

security:
    #...
    access_control:
    - { path: ^/admin, roles: ROLE_ADMIN }

这样,当我想访问这种URL时,登录表单显示是正常的。但是当我触发我的AJAX调用时,我已经登录了,因为我在/ admin / gallery页面。

有人能弄清楚我在做什么有什么问题吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我绝对不知道为什么,但似乎问题与whatwg-fetch fetch实现有关。我用axios替换了它,问题就消失了。