簡體   English   中英

如何使用 axios 將圖像作為應用程序/json 數據發布到 REST 端點?

[英]How can I post an image to a REST enpoint as application/json data with axios?

我需要將圖像數據發送到僅處理application/json數據的其余端點。

我有以下 axios 代碼適用於處理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"
            }
          })

根據我發現的教程,我認為這應該可行。 但是端點似乎沒有得到任何數據。

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

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

有任何想法嗎? 謝謝你。

您基本上可以將圖像添加到 html 畫布並調用畫布的“ toDataURL ”方法將圖像編碼為字符串。 然后,您可以將編碼的字符串作為 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 開始與圍繞CORS的預檢 OPTIONS 調用進行通信,這使事情變得更加復雜。 我建議密切關注瀏覽器的調試控制台以獲取錯誤/警告消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM