尝试通过url在react-native中加载JSON,但没有得到正确的响应

时间:2017-08-15 08:07:15

标签: javascript php json react-native

getData() {
return fetch("http://bitcfeedcms.rf.gd/script.php")
  .then(response => {
    console.log(response);
    response.json();
  })
  .then(responseJson => {
    this.setState({ data: responseJson });
  })
  .catch(error => {
    console.error(error);
  });

}

我也试过把?l = 1像“bitcfeedcms.rf.gd/script.php?l=1”。 主要的json文件是“bitcfeedcms.rf.gd/feed_data.json”。所以我尝试了“http://bitcfeedcms.rf.gd/feed_data.json?l=1”,但没有改变

我现在要做的是获取json数据并在我的应用程序中使用它...请帮助

3 个答案:

答案 0 :(得分:2)

您使用箭头功能错误。而不是:

fetch("http://bitcfeedcms.rf.gd/script.php")
  .then(response => {
    console.log(response);
    response.json();
  })
  .then(responseJson => {
    this.setState({ data: responseJson });
  })

您应该返回 response.json()

fetch("http://bitcfeedcms.rf.gd/script.php")
   .then(response => {
     console.log(response);
     return response.json();
   })
   .then(responseJson => {
     this.setState({ data: responseJson });
   })

这样您就可以在下一个responseJson中找到then

此外,如果您的应用抱怨fetch() network request failed可能是Info.plist或Manifest配置错误。请参阅此topic

对于iOS,您可以使用此https虚拟json网址尝试相同的请求:      https://jsonplaceholder.typicode.com/posts/1

答案 1 :(得分:0)

http://bitcfeedcms.rf.gd/script.php,此链接返回多组JSON。

([{“FeedTitle”:“Debotos”,“FeedDescription”:“First Feed Testing .....”},{“FeedTitle”:“Akash”,“FeedDescription”:“创建一个名为\的战队” Khulna Sparkers \“”},{“FeedTitle”:“Ripon”,“FeedDescription”:“我的兄弟和我最亲近的人之一”}]

试试这个。 。 。

getData() {
 fetch("http://bitcfeedcms.rf.gd/script.php")
  .then(response => {
    console.log(response);
    response.json();
  })
  .then(responseJson => {
        var length = responseJson.length;
        for (var a = 0; a<length;a++) {
            var FeedTitle = responseJson[a].FeedTitle; //<-variable from your response json
            var FeedDescription = responseJson[a].FeedDescription; //<-from your response json
            console.log(FeedTitle);
            console.log(FeedDescription);
        }
  })
  .catch(error => {
    console.error(error);
  });
}

答案 2 :(得分:0)

尝试axios

&#13;
&#13;
npm install --save axios
&#13;
&#13;
&#13;

&#13;
&#13;
state = {data:[]};
    componentWillMount() {
                 axios.get('http://bitcfeedcms.rf.gd/script.php')
                 .then(response =>this.setState({data:response.data}));
    }
&#13;
&#13;
&#13;