2017-11-10 3 views
-1

ユーザーがこの機能を使用するためのアクセス権を持っていない場合、私はgrowlメッセージを出力しています。jQueryでエラーが#403であるかどうかを確認するにはどうすればいいですか?

しかし、今、私のコードは、いつでもそれを印刷します(ファイルにもかかわらず、大きすぎるか、ユーザーがアクセス権を持っていない)

私は何をしたいことは、エラーコードが#403そうであればある場合にだけ、チェックすることですそのgrowlMessageを印刷します。誰かが私にそのようにする方法を説明できますか?

はここに私のjQueryの機能です:

function fileInputError(event, data, msg) { 
    setTimeout(function() { 
    var nav = $('#nav-users'); 
    var progressBar = nav.find('.progress-bar'); 
    progressBar.removeClass('bg-success progress-bar-success') 
     .addClass('bg-danger progress-bar-danger'); 
    progressBar.text('Error'); 
    }, 110); 

    growlMessage('You don't have permission to use this function.'); 
} 
+0

ご質問に十分な情報が表示されません。 1.上記のコードに関係なく、setTimoutは直ちに実行され、あなたのうなり音が実行されます。 2.私はあなたがajaxingだと思うので、ajaxのエラーや少なくともsetTimeoutの関数の中にうなり音を入れてください – mplungjan

+0

@mplungjan関数の名前は 'fileInputError()'なので、エラーから呼び出されていると思われますajaxのハンドラ – Barmar

+0

@Barmar拡張子が間違っていたときに、その名前はエラーと同じように聞こえました - しかし、私が言ったように、growlが非同期メッセージの外にある – mplungjan

答えて

1

私はあなたがエラーコードを確認したい場合は以下のようにからstatusCode

使用からstatusCodeを使用することができ、あなたのコード内の任意のAJAX呼び出しが表示されない:

$.ajax({ 
    statusCode: { 
    403: function() { 
     growlMessage('You don't have permission to use this function.'); 
    }, 
    500: function() { 
     alert('500 status code! server error'); 
    } 
} 
}); 
1

この関数がerror:オプションから呼び出された場合、$.ajaxのように呼び出されます。

error: fileInputError, 

第1引数はjqXHRオブジェクトです。それからステータスコードを得ることができます。

function fileInputError(jqxhr, textStatus, error) { 
    setTimeout(function() { 
    var nav = $('#nav-users'); 
    var progressBar = nav.find('.progress-bar'); 
    progressBar.removeClass('bg-success progress-bar-success') 
     .addClass('bg-danger progress-bar-danger'); 
    progressBar.text('Error'); 
    }, 110); 
    if (jqxhr.status == 403) { 
    growlMessage('You don't have permission to use this function.'); 
    } 
} 
関連する問題