我正在使用带有Ionic应用程序的Cordova文件上传插件并将其发送到Laravel后端。它使用JWT auth,在发送请求时我必须沿参数转发令牌。
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);
问题是(我推测)在Cordova文档中它说参数是作为DOMString转发的,因为我在Laravel方面获得了400 error token_not_provided
......有什么想法吗?
答案 0 :(得分:0)
您可能需要检查后端预期如何提供身份验证令牌,但在大多数情况下,它位于标头中而不是作为参数。查看upload method documentation,尤其是second example -
(虚拟代码)
var options = new FileUploadOptions();
options.chunkedMode = false;
options.fileName = 'someFileName.jpg';
options.headers = {
"token": localStorage.getItem('token')
};
答案 1 :(得分: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...'
}
};