首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用离子3@离子-本机/ HTTP在本地http中传递FormData?

如何用离子3@离子-本机/ HTTP在本地http中传递FormData?
EN

Stack Overflow用户
提问于 2019-09-03 14:16:10
回答 1查看 2.4K关注 0票数 1

我在离子3项目中增加了插件

代码语言:javascript
复制
$ ionic cordova plugin add cordova-plugin-advanced-http
$ npm install --save @ionic-native/http@4

我想在本地HTTP请求中传递FormDate。

代码语言:javascript
复制
var formData = new FormData();
formData.append('file', fileObject)
formData.append('temp_id', '');
let headers = {
  "Accept": "application/json",
  "api-auth": 'apiAuthToken String',
  "User-Auth": 'userAuthToken String'
  }
this.http_native.setDataSerializer('urlencoded');
this.http_native.setHeader('*', 'Content-Type', 'application/x-www-form-urlencoded');
this.http_native.post('url String', formData, headers).then(api_response => {

});

错误advanced-http: "data" argument supports only the following data types: Object

EN

回答 1

Stack Overflow用户

发布于 2019-09-04 12:54:52

您需要在post方法的第二个参数中传递一个对象。当您设置-url时,对象将自动转换为格式url编码-

代码语言:javascript
复制
this.http_native.setDataSerializer('urlencoded');

移除:

代码语言:javascript
复制
var formData = new FormData();
formData.append('file', fileObject)
formData.append('temp_id', '');

代之以:

代码语言:javascript
复制
var formData = {
    file: fileObject,
    temp_id: ''
 }

最后提出邮寄请求:

代码语言:javascript
复制
let headers = {
  "Accept": "application/json",
  "api-auth": 'apiAuthToken String',
  "User-Auth": 'userAuthToken String'
  }
this.http_native.setDataSerializer('urlencoded');
this.http_native.setHeader('*', 'Content-Type', 'application/x-www-form-urlencoded');
this.http_native.post('url String', formData, headers).then(api_response => {

});

如果您想上传文件,那么检查这个文档- https://github.com/silkimen/cordova-plugin-advanced-http#uploadfile

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57773574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档