1

Phonegap/Cordova 2.7.4 でラップされた Sencha Touch 2.2.0 アプリがあります。HTTP 基本認証を使用する REST API に対して単純な ajax 呼び出しを行います。

Ext.Ajax.request({
    url: 'http://localhost:3000/test',
    method: 'GET',

    // timeout occurs on invalid credentials?
    timeout: 2000,
    //enable basic authentication
    withCredentials: true,
    // need useDefaultXhrHeader: false and disableCaching: true to get cookies to work.
    useDefaultXhrHeader: false,
    disableCaching: true,

    username: 'username',
    password: 'password',
    success: function(response) {
        // process JSON data...

    },
    failure: function(response) {

        console.log('Login failed. response.status:' + response.status +
            ', response.statusText:' + response.statusText +
            ', response.responseText:' + response.responseText);

        // invalid credentials appears to timeout...
        // response.status:0, response.statusText:communications failure, response.responseText: undefined
    }
});

このコードは iOS デバイスでは正常に機能しますが、Android では機能しませんか?

... D/CordovaLog(1967): ログインに失敗しました。response.status:401、response.statusText:Unauthorized、response.responseText:Unauthorized

このアプリをデフォルトの Android ブラウザー (ローカルの Apache 開発 Web サーバーでホストされている) で実行すると、ブラウザーから資格情報の入力を求められます。クレデンシャルの待機中に ajax リクエストがタイムアウトしたと思われます。資格情報が正しくても、iOS でも動作しますか?

何かご意見は?

4

0 に答える 0