【问题标题】:React Native: Network Request Failed, but didn't actuallyReact Native:网络请求失败,但实际上并没有
【发布时间】:2016-09-17 17:56:32
【问题描述】:

我有这个简单的网络请求:

registerDevice(data) {
    return new Promise((next, error) => {
      fetch(SERVER_URL + '/devices', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify(data)
      })
      .then((response) => {
          return response.json()
      })
      .then((responseData) => {
          console.log(responseData);
          next(responseData);
      })
      .catch((err) => error(err));
    })
  }

每次执行时,我都会得到一个

Network request failed
at XMLHttpRequest.xhr.onerror...

虽然没有错误,但数据已成功发布,并且我得到了正确的响应标头。

RN 是 0.33,我正在为 Android 编译。 Android 版本 4.4.4、5.0.1、6.0.1 和 7.0 上的错误

【问题讨论】:

  • XMLHttpRequest 在哪里使用?
  • 您引用了链接文档的哪一部分?
  • 这只是 React 中的一个常规 fetch() 请求,实际上它使用的是 XMLHttpRequest。
  • “实际上是在使用 XMLHttpRequest” 什么意思?

标签: javascript android react-native fetch


【解决方案1】:

您可以使用 ES6 语法。您的代码将如下所示:

fetch(url,{method:'POST',body:data})
.then(r => r.json())
.then(data => console.log(data))
.catch(e => console.log("Booo"));

参考:https://jakearchibald.com/2015/thats-so-fetch/

== 编辑 ==

抱歉,您可以尝试使用awaitasync。代码:

let response = await fetch(this.api_url,{
    method:'POST',
    body: data
})

let responseJson = await response.json();
return responseJson;

您能否详细解释您收到的错误?

【讨论】:

  • 请再看一下我写的内容,如果不是 ES6 语法,请告诉我。
  • 我在android上试了一下,效果很好,你能扩展你的错误输出吗?
猜你喜欢
  • 2019-01-06
  • 1970-01-01
  • 2021-04-07
  • 2020-07-23
  • 2020-04-27
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多