ソースを参照

Merge pull request #7522 from wenzhixin/fix/refresh-bug

Fixed refresh invalid url bug when url is relative path
文翼 1 年間 前
コミット
aa7989830d
2 ファイル変更12 行追加9 行削除
  1. 1 9
      src/bootstrap-table.js
  2. 11 0
      src/utils/index.js

+ 1 - 9
src/bootstrap-table.js

@@ -3068,16 +3068,8 @@ class BootstrapTable {
     if (params && params.pageSize) {
       this.options.pageSize = params.pageSize
     }
-
     if (params && params.query) {
-      const url = new URL(this.options.url)
-      const urlParams = new URLSearchParams(url.search)
-
-      for (const [key, value] of Object.entries(params.query)) {
-        urlParams.set(key, value)
-      }
-      url.search = urlParams.toString()
-      this.options.url = url.toString()
+      this.options.url = Utils.addQueryToUrl(this.options.url, params.query)
     }
 
     this.trigger('refresh', this.initServer(params && params.silent))

+ 11 - 0
src/utils/index.js

@@ -824,5 +824,16 @@ export default {
 
     d.innerHTML = html
     return d.childNodes
+  },
+
+  addQueryToUrl (url, query) {
+    const hashArray = url.split('#')
+    const [baseUrl, search] = hashArray[0].split('?')
+    const urlParams = new URLSearchParams(search)
+
+    for (const [key, value] of Object.entries(query)) {
+      urlParams.set(key, value)
+    }
+    return `${baseUrl}?${urlParams.toString()}#${hashArray.slice(1).join('#')}`
   }
 }