2009-06-18 8 views
1

を-wrapped完全なフォーム提出ではないため、ログオンページにリダイレクトされます。質問は、プログラムで、私が認証されていないことを知り、ログオンページにリダイレクトする必要がありますか?ポスト[認証]私はこのようにjQueryを使って投稿しようとしているアクション

$.post("NiceController/Create/", { field1: data1, field2: data2 }, 
    function(data, textStatus) { 
     if (data.Status) 
      if(data.Status == 'authFailed') { 
       window.location.href = '/login'; 
      } 
     } 
    }, "json"); 

答えて

1

より公式な答えがあります場合、私は知らないが、することができます$.get('NiceController/AmILoggedIn')最初:

+0

はい、それは1つの解決策です、ありがとう。私はまだ何とか1つのリクエストでそれをやり遂げることができるのだろうかと思います。 – Dale

0

あなたのような何かをするだろうか?その後、そこの応答に応じて、$.postか、ログインページから何らかのリダイレクトをしますか?

+0

問題にログインしている場合にのみ、アクションを作成して呼び出します。火かき棒は、ログオンの要求があることを示していますが、ページ自体が更新されないため、jsなどの内部にある可能性があります。 – Dale

1

ajaxメソッドを使用する場合は、エラー処理機能を追加する必要があります。私はあなたがJSONを要求しているので、parseerrorを返すべきだと思うのは、あなたが戻ってくるものがJSONではなくリダイレ​​クトであるからです。また、グローバルajaxErrorハンドラを使用して同じ効果を得て、投稿を引き続き使用することもできます。

1

私はあなたのNiceController/Create/がログインページにリダイレクトされたと仮定しています。これはあなたが見ているものです。いい状態ではなく、ログインページからたくさんのHTMLを取得します。

2つの選択肢があります。作成アクションからAuthorize属性を削除し、内部的に処理します。 JSONエラーメッセージを返します。

または:最初のあなたがログインしているかどうかを確認し、利用者が、私は結果の関数に得ることはありませんされて

+0

私は最良の方法は、内部的に、おかげでそれを処理することだと思います。 – Dale

関連する問題