私はバックオフィスイメージのアップロードフォームをSymfony 2.5.12を使ってやっています(ええ、私は少し時代遅れだと知っています。 )。 AJAX経由で画像をアップロードしたいのですが、送信するAJAXリクエストごとに302のログインフォームにリダイレクトされます。ここでSymfony2は各AJAXリクエストでログインフォームを返信します
(それはので、私はちょうど302なしで成功したAJAX呼び出しを行いたい瞬間のために簡略化されたログインページにリダイレクトするので、私はものを関連するデータを削除した)私のものにJSの一部です:
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));
});
そして、ここに/管理/ uploadImageのURLにバインドされた、私のコントローラで自分の行動です:
public function uploadAction() {
return new JsonResponse(array('test' => 'hello world'));
}
すべて/管理者のURLがROLE_ADMINの役割が必要ですが、私はsecurity.ymlファイルでそれを定義した:
security:
#...
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
このようにして、この種類のURLにいつアクセスするかはログインフォームに表示されるのが普通です。しかし、私がAJAXコールを起動すると、私は/ admin/galleryページにいるので、すでにログインしています。
私がやっていることで何が間違っているのか誰でも分かりますか?
ありがとうございました。
AJAXリクエストでCookieが送信されていますか? – Miro
リクエストヘッダー内のCookieを参照するものはありません。 – Cyrille