diff --git a/superset/assets/javascripts/components/AsyncSelect.jsx b/superset/assets/javascripts/components/AsyncSelect.jsx index 69b4216a9c955..e81a123515aba 100644 --- a/superset/assets/javascripts/components/AsyncSelect.jsx +++ b/superset/assets/javascripts/components/AsyncSelect.jsx @@ -42,19 +42,20 @@ class AsyncSelect extends React.PureComponent { fetchOptions() { this.setState({ isLoading: true }); const mutator = this.props.mutator; - $.get(this.props.dataEndpoint, (data) => { - this.setState({ options: mutator ? mutator(data) : data, isLoading: false }); + $.get(this.props.dataEndpoint) + .done((data) => { + this.setState({ options: mutator ? mutator(data) : data, isLoading: false }); - if (!this.props.value && this.props.autoSelect && this.state.options.length) { - this.onChange(this.state.options[0]); - } - }) - .fail(() => { - this.props.onAsyncError(); - }) - .always(() => { - this.setState({ isLoading: false }); - }); + if (!this.props.value && this.props.autoSelect && this.state.options.length) { + this.onChange(this.state.options[0]); + } + }) + .fail((xhr) => { + this.props.onAsyncError(xhr.responseText); + }) + .always(() => { + this.setState({ isLoading: false }); + }); } render() { return ( diff --git a/superset/assets/javascripts/explore/components/controls/SelectAsyncControl.jsx b/superset/assets/javascripts/explore/components/controls/SelectAsyncControl.jsx index 173a275ca9c33..e06778fc61a67 100644 --- a/superset/assets/javascripts/explore/components/controls/SelectAsyncControl.jsx +++ b/superset/assets/javascripts/explore/components/controls/SelectAsyncControl.jsx @@ -37,7 +37,7 @@ const SelectAsyncControl = ({ value, onChange, dataEndpoint,