diff --git a/core/modules/views/js/ajax_view.es6.js b/core/modules/views/js/ajax_view.es6.js
index 0c85358..02ea06e 100644
--- a/core/modules/views/js/ajax_view.es6.js
+++ b/core/modules/views/js/ajax_view.es6.js
@@ -57,6 +57,15 @@
 
     // Check if there are any GET parameters to send to views.
     let queryString = window.location.search || '';
+    // Prepend the query parameters that built the view to the query string.
+    if (settings.view_query && settings.view_query.length) {
+      if (queryString.length) {
+        queryString = `${settings.view_query}&${queryString}`;
+      }
+      else {
+        queryString = settings.view_query;
+      }
+    }
     if (queryString !== '') {
       // Remove the question mark and Drupal path component if any.
       queryString = queryString.slice(1).replace(/q=[^&]+&?|&?render=[^&]+/, '');
diff --git a/core/modules/views/js/ajax_view.js b/core/modules/views/js/ajax_view.js
index a10eb83..28240a4 100644
--- a/core/modules/views/js/ajax_view.js
+++ b/core/modules/views/js/ajax_view.js
@@ -31,6 +31,14 @@
     }
 
     var queryString = window.location.search || '';
+
+    if (settings.view_query && settings.view_query.length) {
+      if (queryString.length) {
+        queryString = settings.view_query + '&' + queryString;
+      } else {
+        queryString = settings.view_query;
+      }
+    }
     if (queryString !== '') {
       queryString = queryString.slice(1).replace(/q=[^&]+&?|&?render=[^&]+/, '');
       if (queryString !== '') {
diff --git a/core/modules/views/views.module b/core/modules/views/views.module
index 4b653fd..f18c6c6 100644
--- a/core/modules/views/views.module
+++ b/core/modules/views/views.module
@@ -53,6 +53,7 @@ function views_help($route_name, RouteMatchInterface $route_match) {
 function views_views_pre_render($view) {
   // If using AJAX, send identifying data about this view.
   if ($view->ajaxEnabled() && empty($view->is_attachment) && empty($view->live_preview)) {
+    $request = \Drupal::request();
     $view->element['#attached']['drupalSettings']['views'] = [
       'ajax_path' => \Drupal::url('views.ajax'),
       'ajaxViews' => [
@@ -60,7 +61,8 @@ function views_views_pre_render($view) {
           'view_name' => $view->storage->id(),
           'view_display_id' => $view->current_display,
           'view_args' => Html::escape(implode('/', $view->args)),
-          'view_path' => Html::escape(Url::fromRoute('<current>')->toString()),
+          'view_path' => Html::escape($request->getPathInfo()),
+          'view_query' => $request->getQueryString(),
           'view_base_path' => $view->getPath(),
           'view_dom_id' => $view->dom_id,
           // To fit multiple views on a page, the programmer may have
