使用XMLHttpRequest时出现TypeError异常

时间:2019-12-12 00:14:56

标签: typescript xmlhttprequest multipartform-data

我正在编写一个Visual Studio扩展,并尝试使用multipart / form-data通过http请求发送图像。

  const fs = require('fs');
  const form = new FormData();
  const f = fs.readFileSync('/IMG.jpg');
  const XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
  let request = new XMLHttpRequest();
  request.onreadystatechange = function() {
    console.log(`${request.readyState}`);
    if (request.readyState === 4) {
      console.log(`Successfully uploaded at: ${request.response.date}`);
    }
  };
  request.open('POST', `https://api.trello.com/1/card/${idCard}/attachments`);
  form.append("key", this.getKey());
  form.append("token", this.getToken());
  form.append("file", f);
  form.append("mimeType", "image/jpg");
  form.append("name", "My Awesome File");
  //request.setRequestHeader('Content-Type','multipart/form-data');
  request.send(form);

request.send(form)行,我有例外情况

  TypeError [ERR_INVALID_ARG_TYPE] [ERR_INVALID_ARG_TYPE]: The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type object

所有使用XmlHttpRequest的示例都表明FormData可以在此方法中使用。我从npm为Node.js安装了XmlHttpRequest和FormData。

如何发送此FormData?

1 个答案:

答案 0 :(得分:0)

来自npm的

XmlHttpRequest存在问题#174。它不支持FormData。您可以使用方法FormData.getBuffer()