9

FileTransfer メソッドを使用して、PhoneGap からサーバーにファイルをアップロードしようとしています。このアップロードで HTTP 基本認証を有効にする必要があります。

関連するコードは次のとおりです。

    var options = new FileUploadOptions({
        fileKey: "file",
        params: {
            id: my_id,
            headers: { 'Authorization': _make_authstr() }
        }
    });
    var ft = new FileTransfer();
    ft.upload(image, 'http://locahost:8000/api/upload', success, error, options);

PhoneGap ソース コードを見ると、上記で行ったように、「params」リストに「headers」を含めることで認証ヘッダーを指定できるようです。

      JSONObject headers = params.getJSONObject("headers");
      for (Iterator iter = headers.keys(); iter.hasNext();)
      {
        String headerKey = iter.next().toString();
        conn.setRequestProperty(headerKey, headers.getString(headerKey));
      }

ただし、これは実際にはヘッダーを追加していないようです。

だから:iPhoneとAndroidの両方で、PhoneGapのFileTransferでHTTP基本認証を行う方法はありますか?

4

3 に答える 3

10

次のように、パラメータではなくオプションにカスタムヘッダーを追加することで、カスタムヘッダーを追加できます。

authHeaderValue = function(username, password) {
    var tok = username + ':' + password;
    var hash = btoa(tok);
    return "Basic " + hash;
};

options.headers = {'Authorization': authHeaderValue('Bob', '1234') };
于 2013-01-14T03:37:15.443 に答える