Giphy 上传适用于 .ajax 但不适用于获取

Giphy uplaod works with .ajax but not fetch

我正在尝试将 gif 上传到 Giphy。它可以使用 jQuery/.ajax 但我无法使用 fetch.

这是 .ajax 版本:

$.ajax({
    type: "POST",
    url: "http://upload.giphy.com/v1/gifs",
    data: {
      api_key: "E0sxxxxxxxxxxxxxxxxxxxxxxxxxx",
      source_image_url: "https://urlto/snoopy.gif",
      tags: "cute dog",
    },
    success: function (data) {
      console.log(data);
    },
    error: function (data) {
      alert("fail");
    },
  });

and here is the fetch version which returns a 401 error:

 fetch("https://upload.giphy.com/v1/gifs", {
    method: "POST",

    body: {
      api_key: "E0sxxxxxxxxxxxxxxxxxxxxxxxxxx",
      source_image_url: "https://urlto/snoopy.gif",
      tags: "cute dog",
    },

  }).then((response) => {
    console.log("status:");
    console.log(response);
  });

我没有受过 fetch 方面的培训,所以任何对我做错的事情的帮助都是很好的。

您不能像在 $.ajax 中那样将普通对象作为要获取的请求主体传递。使用 URLSearchParams 对象

 fetch("https://upload.giphy.com/v1/gifs", {
    method: "POST",
    body: new URLSearchParams({
      api_key: "E0sxxxxxxxxxxxxxxxxxxxxxxxxxx",
      source_image_url: "https://urlto/snoopy.gif",
      tags: "cute dog"
    })    
  }).then((response) => {
    console.log("status:");
    console.log(response);
  });