Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用axios将图像作为应用程序/json数据发布到REST enpoint?_Javascript_Json_Axios - Fatal编程技术网

Javascript 如何使用axios将图像作为应用程序/json数据发布到REST enpoint?

Javascript 如何使用axios将图像作为应用程序/json数据发布到REST enpoint?,javascript,json,axios,Javascript,Json,Axios,我需要将图像数据发送到只处理application/json数据的rest端点 我有以下适用于处理multipart/form data数据的端点的axios代码: let data = new FormData(); canvas.toBlob(blob => { data.append("image", blob); this.loading = true; axios .post(this.a

我需要将图像数据发送到只处理
application/json
数据的rest端点

我有以下适用于处理
multipart/form data
数据的端点的axios代码:

      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"
            }
          })
根据我找到的教程,我认为这应该行得通。但是端点似乎没有得到任何数据

      canvas.toBlob(blob => {
        let data = {
          image: blob
        }
        this.loading = true;

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

有什么想法吗?谢谢。

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

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

多亏了Ajay Ullal,我编写了以下代码:

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通过飞行前的选项调用开始通信,这使事情变得有点复杂。我建议您密切关注浏览器的调试控制台,查看错误/警告消息

多亏了Ajay Ullal,我编写了以下代码:

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通过飞行前的选项调用开始通信,这使事情变得有点复杂。我建议您密切关注浏览器的调试控制台,查看错误/警告消息

什么是
blob
以及
数据的结果字符串值是什么。image
blob是由
blob
返回的对象句柄,以及
数据的结果字符串值是什么。image
blob是由奇怪的事情返回的对象句柄,现在代码抛出异常,正因为如此,这是怎么可能的。我确信响应头包含“访问控制允许源”。您可以参考此项以获得问题的解决方案。基本上,您需要将'data:'源代码添加到内容安全策略头中的img src指令中。奇怪的是,现在代码抛出了一个异常,因为这是怎么可能的。我确信响应头包含“访问控制允许源”。您可以参考此项以获得问题的解决方案。基本上,您需要将“data:”源添加到内容安全策略头中的img src指令中。