在某些时候,firefox有时会得到空的responseText

时间:2019-02-01 06:41:43

标签: firefox xmlhttprequest local-storage

我们项目中的奇怪错误。我没有机会在网络面板中检查请求,但是我有下面的代码,该代码从我们的服务器中获取一个js / css文件,并将其设置为localstorage,以实现我们期望的更快的页面加载。 / p>

因此,有时我们用户的浏览器(所有的Firefox,大约64个,大约48个)无法完全打开页面,显然缺少一些CSS / JS文件。当我检查localStorage时,某些文件(实际上是某些两个或三个文件)存储着空的“内容”,但存储着正确的“版本”。

function _load(version, url, type) {
    return new Promise(function(resolve) {
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function() {
            if (xhr.readyState === 4)
                if (xhr.status === 200) {
                    console.log(type + ' loaded: ' + url + '@' + version);
                    try {
                        _store.set(CACHE_PREFIX+url, { // just a wrapper of localStorage.setItem()
                            content: xhr.responseText,
                            version: version
                        });
                    } catch (error) {
                        console.warn(error);
                    }
                    resolve()
                } else {
                    console.warn('error loading '+type+': '+url+'@'+version);
                    resolve()
                }
        }
        xhr.open("GET", url+'?'+version, true);
        xhr.send();
    })
}

因此,即使readyState === 4和status === 200,显然xhr.reponseText为空,并且仅在具有某些请求的Firefox上发生,为什么会发生?

0 个答案:

没有答案