PhoneGap FileTransfer具有HTTP基本身份验证

Par*_*and 9 authentication cordova

我正在尝试使用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);
Run Code Online (Sandbox Code Playgroud)

查看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));
      }
Run Code Online (Sandbox Code Playgroud)

但是,这似乎并没有实际添加标题.

那么:对于iPhone和Android,有没有办法用PhoneGap的FileTransfer进行HTTP基本身份验证?

Rya*_*yan 10

您可以通过将自定义标题添加到选项而不是像这样的参数来添加自定义标题:

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

options.headers = {'Authorization': authHeaderValue('Bob', '1234') };
Run Code Online (Sandbox Code Playgroud)