【请教】在RN中iosapp使用fetch方法url的问题及dns解析



  • 我在公共的一个方法中暴露了一个数据

    
    let apiUri = 'https://www.aaa.com/';
    const api={
        home_article:apiUri+'getapi-index'
    };
    
    export default {api};
    

    然后我在scrollview中调用这个东西,使用fetch方法获取数据

        fetchData() {
            console.log(api);
            try {
                // fetch('http://localhost/api.php')  //此处标记为C
                // fetch('https://www.aaa.com/getapi-index')  //此处标记为B
                fetch(api.home_article) //此处标记为A
                .then((response) => response.json())
                    .then((responseData)=> {
                        var data = [];
                        console.log(responseData);
                        if (responseData.code == 200) {
                            for (i in responseData.data) {
                                i.content = base64.decode(i.content);
                                data.push(i);
                            }
                        } else
                            data.push({
                                title: '获取失败',
                                uptime: time(),
                                content: '网络连接中断,获取数据失败!',
                            });
                        console.log(data);
                        this.setState({
                            dataSource: data
                        })
                    });
            }catch (e){
                console.log(e);
            }
        }
    

    我的测试情况如下

    1. 当我使用标记A的方式时,ios模拟器告诉这样的警告
      0_1467165283164_Snip20160629_4.png
    2. 当我使用标记B的方式时,ios模拟器出现的警告是这样的
      0_1467165464425_Snip20160629_5.png
      说明 https://www.aaa.com 在Mac中通过host方式指定访问本地了
    127.0.0.1 www.aaa.com
    
    1. 使用C标记方式访问正常,虽然也报错但是报base64错误,是因为我没有引入库,看图
      0_1467165689970_Snip20160629_6.png

    问题来了,鉴于以上3中情况,谁能够给我讲一下ios模拟器dns解析逻辑,不是应该读取mac osx的配置吗?另一个问题是,为什么我通过配置方式 api.home_article方式 fetch 不识别url呢



  • 我怀疑是你export/import的不对
    你确定理解带括号和不带括号的区别吗?



  • @sunnylqm
    我是抄别人,没仔细想过这个问题,我吧花括号去掉看看。



  • @sunnylqm

    export default api
    

    将括号去掉后,可以读取到数据,应该是我并没有理解好花括号,看着别人暴露出来的时候带着花括号我就带着了。

    另一个 那个dns解析是什么回事情 通过mac浏览器可以定向到我本机 ios模拟器不能够定向到本机