为什么获取缓存模式和标头选项无法正常工作以获得新的响应?

时间:2019-01-04 13:28:21

标签: javascript

我尝试通过使用fetch调用网址来获取新的数据列表。该网址返回一个json。按照这些链接fetch(), how do you make a non-cached request?https://hacks.mozilla.org/2016/03/referrer-and-cache-control-apis-for-fetch/中描述的说明,我构建以下init对象。

const headers = new Headers();

headers.append('pragma', 'no-cache');
headers.append('cache-control', 'no-cache');

const init = {
    method: 'GET',
    headers: headers,
    cache: 'reload',
};

但是在将其添加为获取方法的第二个参数之后,返回数据不包括最近添加的数据,因此我认为这是由于缓存所致。

完整的示例如下

function getYears() {
    const id = getId();
    const request = new Request(`index.php?ep=name&id=${id}`);
    const headers = new Headers();

    headers.append('pragma', 'no-cache');
    headers.append('cache-control', 'no-cache');

    const init = {
        method: 'GET',
        headers: headers,
        cache: 'reload',
    };

    fetch(request, init)
        .then(response => response.json())
        .then(json => {
            window.yearCollection = years;
        })
        .catch(error => {
            console.log(error.message);
        });
}

逻辑流程如下,在加载页面时,将调用getYears()方法,然后在以表格形式发送数据时,将重新加载页面。这里的年份列表未更新,我必须手动刷新页面,以获取包含更新数据的列表

0 个答案:

没有答案