0

JavaScript クライアントで使用するための RESTful API に取り組んでいます。すべての API 呼び出しが認証されます。残念ながら、誤った資格情報が提供された場合、恐ろしいブラウザ プロンプトが表示されます。

現在、クライアント側でこれを抑制する方法がないことを認識しています。幸いなことに、私はクライアントと API の両方を管理しています。

APIを可能な限り標準のままにしたいと思います。したがって、応答コードを 403 に変更したくありません。別の方法として、クライアントが WWW-Authenticate ヘッダーを (要求のカスタム ヘッダーを介して) 抑制できるようにすることを検討しています。少なくとも最新バージョンの Chrome では、プロンプトがトリガーされ、必ずしも 401 コード自体ではないようです。

誰かがそれについて何か洞察を持っていますか? 他のブラウザでは信頼できますか? このルートに行かない理由はありますか?

ありがとう、

ケン

4

1 に答える 1

0

ポップアップは401 Unauthorized答えです。jQueryを使用している場合は、error()コールバックまたはstatusCodeajax呼び出しのプロパティでそれをキャッチできます。

$.ajax({
    url : url,
    type : 'GET/POST/PUT/DELETE',
    data : { your data here },
    dataType : 'json/xml/html',
    statusCode : {

        200 : function(data, textStatus, jqXHR){

            // your logic here

        },                                  

        401 : function(jqXHR, textStatus, errorThrown){

            // your logic here

        }

    }

});

リクエストヘッダーを編集する必要がある場合beforeSend()は、呼び出しでコールバックを使用して、実行前にデータを挿入/削除できるようにします。

于 2012-09-07T21:14:15.753 に答える