版本0.44.0中的React Native fetch()错误

时间:2018-05-30 11:00:28

标签: android reactjs react-native fetch emulation

这是在Android模拟器中使用版本0.44.0的反应原生测试代码。我可以从许多网站获取数据,但有些网站无法获取。下面提供了一个这样的网站。

当我将本机版本升级到0.55.0时,我能够来获取数据。但是,在我的主项目中,我一直在使用版本0.44.0并且无法升级它。所以,我需要一个没有升级反应原生版本的解决方案。我已经浏览了很多stackoverflow页面并找到了ios,localhost等的解决方案。但是,无法找到解决此问题的任何解决方案。

import React, { Component } from 'react';

import { Text,View } from 'react-native';


export default class App extends Component {

  checkaccess = () => {
    url = 'https://example.com/wc-api/v3/'
    fetch(url, {
      method: 'GET',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
      }
    })
      .then((response) => {
        console.log('got')
       // console.log(response.json())
        return response.json()
      })
      .catch((error) => {
        console.log('error',error)
      })
      .done()
}


  render() {
    return (
      <View>
        {this.checkaccess()}
        <Text>test</Text>
      </View>
    );
  }
}

控制台日志是:

error TypeError: Network request failed
    at XMLHttpRequest.xhr.onerror (index.bundle:12366)
    at XMLHttpRequest.dispatchEvent (index.bundle:13277)
    at XMLHttpRequest.setReadyState (index.bundle:15382)
    at XMLHttpRequest.__didCompleteResponse (index.bundle:15238)
    at index.bundle:15333
    at RCTDeviceEventEmitter.emit (index.bundle:3851)
    at MessageQueue.__callFunction (index.bundle:2090)
    at index.bundle:1948
    at MessageQueue.__guard (index.bundle:2062)
    at MessageQueue.callFunctionReturnFlushedQueue (index.bundle:1947)

1 个答案:

答案 0 :(得分:0)

你应该试试这个

fetch(url, {
    credentials: 'include',
    ...otherOptions,
});

对于其他选项或了解,请检查this关于github react-native问题的讨论