продолжает получать старые данные JSON? - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь получить файл json по ссылке https, независимо от того, какая ссылка даст результат, не изменится!?

Я проверил все файлы json. в случае, если у них была ошибка. responseData остается прежним, и даже когда я заставляю данные изменяться, вместо этого возвращая responseData, возвращая json, написанный вручную; он меняется прямо на старые данные json, которые просто не меняются, когда я возвращаю responseData обратно. И данные ответа, которые я просил разместить на консоли, дают неверную информацию Указанный URL-адрес правильный. но вывод не соответствует данным, когда я заполняю ссылку в интернет-браузере.

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, это дает Бобу ожидание Шелдона когда URL указывает на JSON Temp, это дает Боб, ожидающий Боб когда URL-адрес указывает на JSON A_JSON это дает Боб, ожидая Грег при возврате json без попыток получить его из Интернета в месте responseData; это дает ожидаемое значение

Если вам нужна дополнительная информация, не стесняйтесь спрашивать. Спасибо, что уделили время на чтение моего вопроса.

1 Ответ

0 голосов
/ 06 января 2019

Проблема была Cache-Control. Я добавил 'Cache-Control': 'no-cache' в заголовок выборки, что решило проблему!

Это было отмечено @Pritish Vaidya в комментариях

...