Giphy 上传适用于 .ajax 但不能获取
Posted
技术标签:
【中文标题】Giphy 上传适用于 .ajax 但不能获取【英文标题】:Giphy uplaod works with .ajax but not fetch 【发布时间】:2021-11-03 02:40:15 【问题描述】:我正在尝试将 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 方面的培训,所以对我做错的事情有任何帮助都会很棒。
【问题讨论】:
【参考方案1】:您不能像在 $.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);
);
【讨论】:
以上是关于Giphy 上传适用于 .ajax 但不能获取的主要内容,如果未能解决你的问题,请参考以下文章
Ajax 仅适用于第一次从 php 中的 while 循环中获取数据
谷歌云获取存储桶 - 适用于 cli 但不适用于 python
angularJS ajax 调用失败 403 但 jQuery ajax 调用适用于跨站点 templateUrl 加载。 [复制]