2012-03-30 10 views
0

私はそれが自分の責任であるかjQueryの欠陥であるかわからないという面白い状況に陥っています。jQueryは、Ajaxコールのステータスコード403と異なる文字列を認識していないようです。

現在、私は403ステータスコードを返すAjax呼び出しを行っています。しかし、それに伴う文字列403は標準とは異なります。

403 access deniedを返しますが、仕様によっては403 Forbiddenである必要があります。

私はサーバーから200のステータスコードを取得する方法を知っていますが、問題はこの状況をどのように処理するかです。

これは私のAjax jQueryコードであり、console.log()のいずれの状況にも入りません。

this.get = function(){ 
    var callUrl = self.url + "&limit=" + self.limit + "&page=" + self.page; 
    callUrl += self.getFilterQuery(); 
    callUrl += "&callback=?"; 
    console.log(callUrl); 
    $.ajax({ 
     url: callUrl, 
     dataType: 'json', 
     success: function(response){ 
      console.log(response); 
     }, 
     statusCode: { 
      403: function(response){ 
       console.log('error'); 
       console.log(response); 
      } 
     }, 
     error: function(response){ 
      console.log(response); 
     } 
    });  
} 

注:URLが正しいことを、私は200からstatusCodeを得ることができますが、私は403 access deniedを処理したいと思います。これをどうすれば解決できますか?

+0

ブラウザから 'callUrl'を開いてみましたか? – safarov

+0

コンソールには正確に何が表示されますか? –

答えて

3

この呼び出しは、実際にはXHR要求を使用せずにJSONP経由で行われるようです。 (あなたのURLの "callback =?") - JSONPリクエストの場合、ステータスコード情報は利用できません。あなたは常に有効な応答が送信されることを確認する必要があります。

http://api.jquery.com/jQuery.ajax/

+0

には、その情報を取得するソリューションがあります。また、error(){}関数で終わることもありません。ではなぜですか? –

+1

JSONPリクエストはドキュメントに '

1

これを参照して、特定の拒否を判断できるかどうかを確認してください。 http://en.wikipedia.org/wiki/HTTP_403エラーを投げているディレクトリの設定を確認してください。

関連する問題