浏览代码

fix: add response headers for local files

tophf 3 年之前
父节点
当前提交
58018b8d09
共有 2 个文件被更改,包括 6 次插入3 次删除
  1. 1 2
      src/background/utils/storage-fetch.js
  2. 5 1
      src/common/util.js

+ 1 - 2
src/background/utils/storage-fetch.js

@@ -55,8 +55,7 @@ export async function requestNewer(url, opts) {
     if (modOld || get) {
       const req = await request(url, !get ? { ...opts, method: 'HEAD' } : opts);
       const { headers } = req;
-      // headers does not exist when requesting a local file
-      const mod = headers && (
+      const mod = (
         headers.get('etag')
         || +new Date(headers.get('last-modified'))
         || +new Date(headers.get('date'))

+ 5 - 1
src/common/util.js

@@ -233,7 +233,11 @@ export async function requestLocalFile(url, options = {}) {
   return new Promise((resolve, reject) => {
     const xhr = new XMLHttpRequest();
     /** @type {VMReq.Response} */
-    const result = {};
+    const result = {
+      headers: {
+        get: name => xhr.getResponseHeader(name),
+      },
+    };
     const { responseType } = options;
     xhr.open('GET', url, true);
     if (binaryTypes.includes(responseType)) xhr.responseType = responseType;