2016-03-20 13 views
0

私はバックオフィスイメージのアップロードフォームを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ページにいるので、すでにログインしています。

私がやっていることで何が間違っているのか誰でも分かりますか?

ありがとうございました。

+0

AJAXリクエストでCookieが送信されていますか? – Miro

+0

リクエストヘッダー内のCookieを参照するものはありません。 – Cyrille

答えて

0

私は絶対に理由はわかりませんが、問題はwhatwg-fetchの実装に関連していたようです。私はそれをaxiosに置き換え、問題はなくなった。

関連する問題