1

カメラからキャプチャした画像をサーバーにアップロードしようとしています。以下の方法は、どの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);

iOSでヘッダーの設定に問題があったことは知っていますが、Phonegap1.9.0で修正されたと思います。私はここで何か間違ったことをしていますか?

サーバーログを確認しましたが、iOSで認証ヘッダーが設定されていないようです。変...

4

1 に答える 1

6

それで、それと格闘した一日の後にこれを理解しました。つまり、AndroidとiOSは、headersパラメーターを取得する方法が異なります。

アンドロイド:

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

また

options.headers = {Authorization: 'Basic ' + loginCreds};

iOS:

options.headers = {Authorization: 'Basic ' + loginCreds};

これが誰かの頭痛の種を救うことを願っています...

于 2013-01-14T21:23:42.697 に答える