不断获取旧的json数据?

时间:2019-01-06 17:02:50

标签: json react-native fetch

但是我试图从https链接中获取json文件,无论给定什么链接,结果都不会改变!?

我验证了所有json文件。万一他们有一个错误。 responseData保持不变,即使我通过改为返回responseData并返回手动编写的json来强制更改数据时也是如此;它会立即变回原来的json数据,当我将responseData返回时,它不会发生变化。 我请求发布到控制台的responseData提供了错误的信息 给出的网址正确。 但是当我填写Internet浏览器中的链接时,输出与数据不对应。

constructor(props){
    super(props);
    this.state = {
        connected: false,
    }
    this.init = this.init.bind(this);
    this.getJson = this.getJson.bind(this);
    this.updateVisited = this.updateVisited.bind(this);
}

    init = async ({json})=>{
    if(json==null){
        await AsyncStorage.setItem('database', "");
        alert('error occured');
    } else {
        await AsyncStorage.setItem('database', JSON.stringify(json));
        this.setState({
            connected: true
        });
    }
}

getJson = async ()=>{
    var url = await AsyncStorage.getItem("database_url");
    console.log(url);
    return fetch(url,
    {
        method: "GET",
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
        },
    })
    .then(response => response.json())
    .then(responseData => {
        this.updateVisited(url);
        console.log(responseData);
        return responseData;
    })
    .catch(error => {
        alert('Could not connect!');
        return null;
    })
}

connect = async ({url})=>{
    await AsyncStorage.setItem("database_url", url);
    this.getJson().then(json => this.init({json}));
}

"a_json": [{"name": "greg"}]
"test": [{"name": "sheldon"}]
"temp": [{"name": "bob"}]

当url指向json测试时,它使bob期待sheldon 当网址指向json临时时,它会给bob期望bob 当网址指向json a_json时,它会给bob期望greg 当返回一个json而不试图从互联网上的responseData位置获取它时;它给出了期望值

如果您需要更多信息,请随时提问。 谢谢您抽出宝贵时间阅读我的问题。

1 个答案:

答案 0 :(得分:0)

问题是Cache-Control。 我在提取的标题中添加了'Cache-Control': 'no-cache',从而解决了该问题!

@Pritish Vaidya在评论中指出了这一点