我正在使用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页面。
有人能弄清楚我在做什么有什么问题吗?
非常感谢。
答案 0 :(得分:0)
我绝对不知道为什么,但似乎问题与whatwg-fetch
fetch实现有关。我用axios
替换了它,问题就消失了。