Cordova文件传输DOMString

时间:2016-08-28 20:24:08

标签: angularjs cordova ionic-framework

我正在使用带有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 ......有什么想法吗?

2 个答案:

答案 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...'
  }
};