使用fetch
进行GET请求后,我得到了响应。我知道此响应将返回一个数组。当我用.json()
处理它时,一切都很好。但是,当我尝试使用.formData()
处理相同的响应时,它会失败。
这是代码:
fetch(fullPath)
.then(response => response.json())
.then((allData) => {
console.log(allData);
})
.catch((e) => console.log(e));
与response.formData()
相同的那个不起作用。
因此,问题是-如果off. doc says .formData()
也是从响应中提取主体的可接受方法,为什么我们不能首先使用formData()
来处理诺言?
答案 0 :(得分:2)
如果响应不具有multipart / form-data类型,则formData()
方法将返回错误。它应该具有key=value
条目。请参阅this question,那里有人问如何设计这种格式的响应。
如果您对无效的JSON响应调用json()
方法,也会发生类似的情况:
由于很少使用multipart/form-data
作为响应内容类型,因此也不经常使用formData()
方法。 documentation on MDN提到它对服务人员有一定用途:
注意:此[方法]主要与服务人员有关。如果用户提交了表单,而服务人员拦截了该请求,则您可以例如在其上调用
formData()
以获取键值映射,修改某些字段,然后将该表单发送给服务器(或使用它)本地)。