处理提取响应-JS

时间:2019-01-26 20:02:42

标签: javascript web fetch response

使用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()来处理诺言?

1 个答案:

答案 0 :(得分:2)

如果响应不具有multipart / form-data类型,则formData()方法将返回错误。它应该具有key=value条目。请参阅this question,那里有人问如何设计这种格式的响应。

如果您对无效的JSON响应调用json()方法,也会发生类似的情况:

由于很少使用multipart/form-data作为响应内容类型,因此也不经常使用formData()方法。 documentation on MDN提到它对服务人员有一定用途:

  

注意:此[方法]主要与服务人员有关。如果用户提交了表单,而服务人员拦截了该请求,则您可以例如在其上调用formData()以获取键值映射,修改某些字段,然后将该表单发送给服务器(或使用它)本地)。