Phonegap - iOS文件传输无法使用授权标头

gab*_*m10 1 javascript ios jquery-mobile cordova

我正在尝试将从相机捕获的图像上传到服务器.以下方法适用于任何Android设备,但出于某种原因,它在iOS上失败了.它返回401错误,这没有意义:

var options = new FileUploadOptions();
    options.fileKey="files[]";
    options.fileName = 'image_' + obj.id + '.jpg';
    options.mimeType="image/jpeg";
    options.chunkedMode = false;

    var params = new Object();
    params.headers = {
        Authorization: 'Basic ' + loginCreds
    }

    options.params = params;
    var ft = new FileTransfer();
    ft.upload(imageURI, CONTEXT+'URL/files", 
        function(r){
            alert('Finished upload!');
            $.mobile.loading( 'hide' );  
        }, 
        function(error){
            console.log(error.http_status);
            alert('Error uploading image: ' +error.http_status+ ' and code - ' +error.code); 
            $.mobile.loading( 'hide' );  
        }, 
        options, true);
Run Code Online (Sandbox Code Playgroud)

我知道在iOS中设置标题存在问题,但我认为这是在Phonegap 1.9.0中修复的.我在这里做错了吗?

我检查了服务器日志,似乎授权标头只是没有在iOS中设置.奇怪...

gab*_*m10 6

所以在经过一整天的摔跤后想出这个.事实证明,Android和iOS在如何采用headers参数方面存在差异.

安卓:

var params = new Object();
params.headers = {Authorization: 'Basic ' + loginCreds};
options.params = params;
Run Code Online (Sandbox Code Playgroud)

要么

options.headers = {Authorization: 'Basic ' + loginCreds};
Run Code Online (Sandbox Code Playgroud)

iOS版:

options.headers = {Authorization: 'Basic ' + loginCreds};
Run Code Online (Sandbox Code Playgroud)

希望这能让某些人感到头疼...