javascript - 尝试使用 fetch 而不是 axios 发出 POST 请求,但是 fetch 请求的响应返回错误,而 axios 没有
问题描述
我有一个函数,它使用 Axios 发送一个成功通过的 POST 请求,我得到了正确的响应。现在我想尝试使用 fetch 来执行完全相同的 POST 请求。不幸的是,获取请求返回一个415 Unsupported Media Type
响应错误,我不知道为什么。
目前:
onBeforeUnload = () => {
try {
const defaultPresence = {
presence: 'AVAILABLE',
message: '',
};
const url = getServerURL() + urls.PRESENCE;
axios.post(
url,
defaultPresence,
{
headers: {
Authorization: `Bearer ${getAccessToken()}`,
},
},
);
} catch (error) {
console.log(error);
}
}
我用来替换 Axios POST 请求的获取代码。
fetch(url, {
method: 'POST',
headers: {
Authorization: `Bearer ${getAccessToken()}`,
},
body: defaultPresence,
});
解决方案
fetch
不将普通物体识别为身体。
如果要发送 JSON,则需要对数据进行编码并自己设置内容类型标头。
fetch(url, {
method: 'POST',
headers: {
Authorization: `Bearer ${getAccessToken()}`,
"Content-Type": "application/json",
},
body: JSON.stringify(defaultPresence),
});
推荐阅读
- javascript - 在浏览器中安装 AdBlock 扩展时,如何使用 Blob 在新页面中显示 pdf\jpg 文件
- c# - 如何通过列表
从 C# 到 C++ CLi? - c - 了解如何使用 C 中的位运算符计算数字的尾随零
- azure-devops - 如何设置条件以避免重复运行为用户故事创建任务
- lte - LTE中集中式无线资源管理与分布式无线资源管理的区别
- c# - 在 IE 中安装 activeX 时如何修复“读取设置初始化文件时出错”?
- python - 如何使用 Keras 生成器选择 batch_size、steps_per_epoch 和 epoch
- kubernetes - Alb Ingress Controller target-type:instance 如何转发请求
- php - 如何插入库存数量并更新到另一个表中?
- python - 解决异常时如何知道哪个参数有错误消息?