2015-11-12 71 views
0

我無法讓我的圖像上傳在iOS上運行。它在Android上正常工作,但iOS導致問題。 這裏是我的代碼:IOS上的Cordova文件上傳錯誤

var server = URLS.INDEX + 'items'; 
      var options = { 
       fileKey: 'itemPic', 
       params: newItemData, 
       chunkedMode : false, 
       headers: { 
        'x-access-token': authService.getApiToken(), 
        Connection: "close" 
       } 
      }; 
      $cordovaFileTransfer.upload(server, filePath, options) 
       .then(function (result) { 
        postNewItemPromise.resolve(); 
        $state.go('slider.me', {}, { 
         reload: true 
        }).then(function() { 
         $rootScope.$broadcast('newItemAdded'); 
        }); 
       }, function (err) { 
        postNewItemPromise.reject(); 
        if (err.status === 401) { 
         authService.reAuth(); 
        } 
       }, function (progress) { 
       }); 

我得到以下錯誤:

body: "{\"message\":\"Unexpected token u\",\"error\":{}}" 
code: 3 
exception: null 
http_status: 400 
source: "file:///var/mobile/Containers/Data/Application/7B768C78-48F1-4A8B-BDC8-35F1C93AEC76/tmp/cdv_photo_007.jpg" 
target: "xxxx" 

我發現有關類似問題很多帖子,但他們都解決了這個與連接:「關閉」chunkedMode:假。雖然這不適合我。

我認爲問題在於文件傳輸插件無法正確解析我的newItemData對象中的數組和對象。我不知道如何解決這個問題。

回答

2

我自己解決了這個問題。 iOS無法在params對象內部對對象進行pares,所以我不得不事先將它們轉換爲json字符串。