2016-08-28 4 views
1

Ionic 앱과 함께 Cordova 파일 업로드 플러그인을 사용하고 Laravel 백엔드로 전송 중입니다. JWT auth를 사용하고 요청을 보낼 때 매개 변수를 따라 토큰을 전달해야합니다.Cordova 파일 전송 DOMString

var options = new FileUploadOptions(); 
options.chunkedMode = false; 
options.fileName = 'someFileName.jpg'; 
options.params = {token: localStorage.getItem('token')} 

var ft = new FileTransfer(); 
alert(JSON.stringify(options)) 
ft.upload('$scope.picData', encodeURI(SERVER + 'user/post'), win, fail, options); 

문제는 내가 Laravel 측 400 error token_not_provided 얻을 수 있기 때문에 매개 변수 ...의 DOMString으로 어떤 아이디어를 전달하는 것을 말한다 코르도바 설명서에 있음 (난 가정)인가?

답변

0

백엔드가 인증 토큰과 함께 제공되는 방법을 확인해야하지만 대부분의 경우 매개 변수가 아니라 헤더에 있습니다. upload method documentation 특히 second example 확인 -

var options = new FileUploadOptions(); 
options.chunkedMode = false; 
options.fileName = 'someFileName.jpg'; 
options.headers = { 
    "token": localStorage.getItem('token') 
}; 
+0

토큰도 사용해 보았습니다. 다른 모든 일반 http 요청과 함께 params로 게시하지만,이 중 하나는 단순히 전달하지 않습니다. – Norgul

0

변경 토큰

(더미 코드) 및 "인증"여기

options.headers = { 
"Authorization" : localStorage.getItem('token') 
} 

예를 사용합니다.

var options = { 
    fileKey: 'file', 
    filename: filename, 
    chunkedMode: false, 
    mimeType: 'multipart/form-data', 
    params: { 
    'filename': filename 
    }, 
    headers: { 
    'Authorization': $rootScope.token //returns a string like 'JWT AmG...' 
    } 
};