1

jQuery ajax メソッドで SOAP Web サービスを呼び出しています。問題がなければ正常に動作しますが、現在、いくつかのテストを行っています。たとえば、間違ったユーザー名/パスワードを指定すると、受け取ったエラーが予期した 401: Unauthorized ではありません。呼び出しはタイムアウトを超えるまで待機し、その後タイムアウト エラーを返します...

SOAPUI で間違った資格情報を使用して Web サービスを試しましたが、Unauthorized インスタント エラー メッセージが表示されます。私のjavascript呼び出しは次のとおりです。

$.ajax({
    url : soapURL,
    type : 'POST',
    username : settings.get('user'),
    password : settings.get('pwd'),
    timeout : '30000',
    dataType : 'xml',
    data : soapReq,
    success : soapSuccess,
    error : soapError,
    contentType : 'text/xml; charset=\"utf-8\"',
    beforeSend : function() {
        $('#loader').show();
    },
    complete : function() {
        $('#loader').hide();
    }
}); 

そしてここにエラーコールバック関数があります:

function soapError(jqXHR, textStatus, errorThrown) {
alert('Ajax error: ' + textStatus);
}
4

1 に答える 1

1

この問題についてさらに調査を行いました。基本認証 + phonegap を使用した AJAX 呼び出しでクロスドメイン呼び出しを行う際に問題を抱えている人がたくさんいますが、これを解決するための完璧な解決策は見つかりませんでした。

しかし、このgoogle groups postのおかげで、少なくとも、任意のサービスへの同期呼び出しで、ユーザーとパスワードを検証し、その後非同期を使用し続けることができることを発見しました.

別の解決策として、401 エラー後のサーバーの応答を変更することもできますが、これを変更することはできませんでした。

于 2012-07-18T13:06:32.973 に答える