使用 JavaScript 的 fetch API 来发送 POST 请求并处理上传结果却无法获取响应的主体内容

使用 JavaScript 的 fetch API 来发送 POST 请求并处理上传结果。
但是,请注意 response.body 在此处的用法是不正确的。response.body 是一个 ReadableStream 对象,它表示响应的主体内容,并不能直接打印到控制台。

如果您需要获取响应的主体内容,可以使用以下方法中的一种:

使用 response.text() 获取文本形式的响应主体内容。
使用 response.json() 获取 JSON 形式的响应主体内容。
使用 response.blob() 获取 Blob 形式的响应主体内容。

const response = await fetch('http://localhost:80/upload', {     
  method: 'POST',
  body: formData,
});

if (response.ok) {
  // 上传成功,可以在这里处理成功的逻辑
  console.log('图片上传成功');
  const responseBody = await response.text(); // 或者使用 response.json() 或 response.blob()
  console.log('响应主体内容:', responseBody);
} else {
  // 上传失败,可以在这里处理失败的逻辑
  console.log('图片上传失败');
  console.log(response.status); // 打印失败的响应状态码
}

可以根据需要选择适当的方法来获取响应的主体内容,并进行相应的处理。请注意,response.text()、response.json() 和 response.blob() 方法也返回 Promise,因此需要使用 await 关键字来获取实际的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对象和fetch API的区别是什么? JavaScript可以通过XMLHttpRequest对象和fetch API来向服务器发送HTTP请求。XMLHttpRequest是ajax传输中最重要的部分之一,而fetch API是XMLHttpRequest的最新替代方案。 XMLHttpRequest对象与fetch API的主要区别是它们如何处理响应返回。XMLHttpRequest对象使用回调函数或事件侦听器处理响应,而fetch API使用Promise进行处理。此外,fetch API支持全局fetch()方法,可以全局使用,而XMLHttpRequest对象必须在每个使用它的JavaScript文件中进行实例化。 以下是JavaScript使用XMLHttpRequest对象发送POST请求的示例代码: ``` var xhr = new XMLHttpRequest(); xhr.open('POST', 'https://example.com/api'); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function() { if(xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } } xhr.send(JSON.stringify({key: 'value'})); ``` 以上代码说明了如何创建XMLHttpRequest对象并使用POST方法向服务器发送JSON数据。在设置请求头和回调函数后,使用`send()`方法发送请求并在成功完成后将响应文本打印到控制台。 对于使用fetch API发送HTTP POST请求,您可以使用以下代码: ``` fetch('https://example.com/api', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({key: 'value'}) }) .then(response => response.text()) .then(data => console.log(data)) .catch(error => console.log(error)); ``` 以上代码说明了如何使用fetch API发送HTTP POST请求。在请求选项中,通过`method`选项指定请求方法,`headers`选项设置请求头,`body`选项设置请求体。发送请求后,使用Promise处理响应。通过`text()`方法获取响应文本,处理完毕后打印到控制台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值