首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将superagent转换为axios?

如何将superagent转换为axios?
EN

Stack Overflow用户
提问于 2017-07-21 00:40:09
回答 1查看 686关注 0票数 0

我有一些上传工作为superagent工作。它涉及到发布到cloudinary的api。我的问题是如何使用axios做同样的事情。我不确定在axios中superagent.attachsuperagent.field与什么相关。

基本上,当我发出post请求时,我需要将所有这些字段附加到请求中,否则我会得到错误的请求,并且我希望在axios而不是superagent中执行此操作,因为我正在切换到axios。

下面是所有的参数:

代码语言:javascript
复制
    const image = files[0];

    const cloudName = 'tbaustin';
    const url = `https://api.cloudinary.com/v1_1/${cloudName}/image/upload`;

    const timestamp = Date.now()/1000;
    const uploadPreset = 'cnh7rzwp';

    const paramsStr = `timestamp=${timestamp}&upload_preset=${uploadPreset}ORor-6scjYwQGpNBvMW2HGMkc8k`;

    const signature = sha1(paramsStr);
    const params = {
      'api_key': '177287448318217',
      'timestamp': timestamp,
      'upload_preset': uploadPreset,
      'signature': signature
    }

以下是superagent post请求:

代码语言:javascript
复制
let uploadRequest = superagent.post(url)
    uploadRequest.attach('file', image);

    Object.keys(params).forEach((key) => {
      uploadRequest.field(key, params[key]);
    });

    uploadRequest.end((err, res) => {
      if(err) {
        alert(err);
        return
      }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-21 02:26:34

您需要按如下方式使用FromData:

代码语言:javascript
复制
  var url = `https://api.cloudinary.com/v1_1/${cloudName}/upload`;
  var fd = new FormData();
  fd.append("upload_preset", unsignedUploadPreset);
  fd.append("tags", "browser_upload"); // Optional - add tag for image admin in Cloudinary
  fd.append("signature", signature);
  fd.append("file", file);
  const config = {
    headers: { "X-Requested-With": "XMLHttpRequest" },
    onUploadProgress: function(progressEvent) {
      // Do something with the native progress event
    }
  };
  axios.post(url, fd, config)
            .then(function (res) {
              // File uploaded successfully
              console.log(res.data);
            })
            .catch(function (err) {
              console.error('err', err);
            });

查看完整的示例here

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

https://stackoverflow.com/questions/45220590

复制
相关文章

相似问题

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