Fetch API 从响应中获取原始值

Posted

技术标签:

【中文标题】Fetch API 从响应中获取原始值【英文标题】:Fetch API get raw value from Response 【发布时间】:2017-07-09 09:49:27 【问题描述】:

我使用 React-Native 请求一些数据,这是我的代码:

    fetch('https://raw.githubusercontent.com/facebook/react-native/master/docs/MoviesExample.json')
      .then((response)=>
        return response.json()
      )
      .then((responseJSON)=>
        callback(responseJSON)
      )
      .catch((error)=>
        console.error(error);
      )
      .done()

我看到responseResponse对象,而json功能码是return this.text().then(JSON.parse),我很困惑JSON.parse的参数是什么?那是response 原始值吗?我怎样才能得到它?

【问题讨论】:

显然this.text() 返回了一个承诺,该承诺由响应的文本内容实现。 感谢您的回答。我有原始文本使用代码.then(response=>response.text()).then(text=>console.log(text)),但我可以在 chrome 控制台中获取文本吗? can I get the text in chrome console?是什么意思 抱歉,我的英文不太好。我的意思是在调试器 Chrome 浏览器的控制台中输出文本。我正在尝试输出response.text(),它是一个Promise 对象,我可以直接在控制台中获取文本(不是Promise 对象)吗? 【参考方案1】:

这就是你想怎么做就怎么做。就我而言,我想手动解析 JSON,因为内置 JSON 解析器不正确地解析了某个字符 (\u001e)。

更改自:

fetch(url)
    .then(response => response.json()) 
    .then((data) => 
        data....

到:

fetch(url)
    .then(response => response.text()) 
    .then((dataStr) => 
        let data = JSON.parse(dataStr);
        data...

【讨论】:

以上是关于Fetch API 从响应中获取原始值的主要内容,如果未能解决你的问题,请参考以下文章

如何从fetch获取响应值而不是没有值的promise?

Fetch Api:无法从本地主机获取数据

React-native fetch Api 获取响应不同于调试模式和普通模式

使用 fetch、cors 时如何从 json API 获取属性?

我如何使用 fetch API 并在状态下存储响应?

如何从 fetch 中获取响应的标头