我如何使用axios将图像发布到REST指定为应用程序/ json数据?

时间:2019-12-10 04:23:09

标签: javascript json axios

我需要将图像数据发送到仅处理arrMotorStates=[[NSMutableArray alloc] init]; NSMutableArray *arr1=[[NSMutableArray alloc]initWithObjects:@1,@0,@0,@0,@0, nil]; NSMutableArray *arr2=[[NSMutableArray alloc]initWithObjects:@0,@0,@-1,@0,@0, nil]; [arr1 addObject:@5]; [arrMotorStates addObject:arr1]; [arrMotorStates addObject:arr2]; NSLog(@"%d",[arrMotorStates[1][2] intValue]); 数据的其余端点。

我有以下axios代码适用于处理application/json数据的端点:

multipart/form-data

根据我发现的教程,我认为这应该可行。但是端点似乎没有任何数据。

      let data = new FormData();
      canvas.toBlob(blob => {
        data.append("image", blob);
        this.loading = true;
        axios
          .post(this.annotateUrl, data, {
            headers: {
              "Content-Type": "multipart/form-data"
            }
          })

有什么想法吗?谢谢。

2 个答案:

答案 0 :(得分:1)

您基本上可以将图像添加到html画布,并调用画布的'toDataURL'方法将图像编码为字符串。然后,您可以将编码后的字符串作为JSON的属性发送。

答案 1 :(得分:1)

多亏了Ajay Ullal的answer,我编写了实现此技巧的代码:

let canvas = this.$parent.image.raster.canvas;

let dataurl = canvas.toDataURL();
let data = { image: dataurl };
this.loading = true;

axios
  .post(this.annotateUrl, data, {
    headers: {
    "Content-Type": "application/json"
    }
  })
  .then([...])
  .catch([...])
  .finally([...])

作为旁注,我注意到axios通过围绕CORS的预检OPTIONS调用开始通信,这使事情变得更加复杂。我建议您密切注意浏览器的调试控制台,以获取错误/警告消息。