After saving slice fixing redirect (#3572)

diff --git a/superset/assets/javascripts/explore/components/SaveModal.jsx b/superset/assets/javascripts/explore/components/SaveModal.jsx
index 9de8353..2939f2e 100644
--- a/superset/assets/javascripts/explore/components/SaveModal.jsx
+++ b/superset/assets/javascripts/explore/components/SaveModal.jsx
@@ -108,7 +108,11 @@
     this.props.actions.saveSlice(saveUrl)
       .then((data) => {
         // Go to new slice url or dashboard url
-        window.location = data.slice.slice_url;
+        if (gotodash) {
+          window.location = data.dashboard;
+        } else {
+          window.location = data.slice.slice_url;
+        }
       });
     this.props.onHide();
   }
diff --git a/superset/views/core.py b/superset/views/core.py
index d068997..23a3993 100755
--- a/superset/views/core.py
+++ b/superset/views/core.py
@@ -1194,16 +1194,18 @@
             dash.slices.append(slc)
             db.session.commit()
 
+        response = {
+            "can_add": slice_add_perm,
+            "can_download": slice_download_perm,
+            "can_overwrite": is_owner(slc, g.user),
+            'form_data': form_data,
+            'slice': slc.data,
+        }
+
         if request.args.get('goto_dash') == 'true':
-            return dash.url
-        else:
-            return json_success(json.dumps({
-                "can_add": slice_add_perm,
-                "can_download": slice_download_perm,
-                "can_overwrite": is_owner(slc, g.user),
-                'form_data': form_data,
-                'slice': slc.data,
-            }))
+            response.update({'dashboard': dash.url})
+
+        return json_success(json.dumps(response))
 
     def save_slice(self, slc):
         session = db.session()