@@ -145,7 +145,7 @@ const createApiUrl = (route, className, objectId, method, dataObject) => {
145145 console . warn ( 'Please use AV._config.APIServerURL to replace AV.serverURL, and it is an internal interface.' ) ;
146146 }
147147
148- let apiURL = AV . _config . APIServerURL ;
148+ let apiURL = AV . _config . APIServerURL || API_HOST . cn ;
149149
150150 if ( apiURL . charAt ( apiURL . length - 1 ) !== '/' ) {
151151 apiURL += '/' ;
@@ -242,6 +242,11 @@ const refreshServerUrlByRouter = () => {
242242 setServerUrl ( servers . api_server ) ;
243243 return cacheServerURL ( servers . api_server , servers . ttl ) ;
244244 }
245+ } , error => {
246+ // bypass all non-4XX errors
247+ if ( error . statusCode >= 400 && error . statusCode < 500 ) {
248+ throw error ;
249+ }
245250 } ) ;
246251} ;
247252
@@ -261,8 +266,8 @@ const setServerUrlByRegion = (region = 'cn') => {
261266 }
262267 } ) . then ( ( ) => {
263268 getServerURLPromise . resolve ( ) ;
264- } ) . catch ( ( ) => {
265- getServerURLPromise . reject ( ) ;
269+ } ) . catch ( ( error ) => {
270+ getServerURLPromise . reject ( error ) ;
266271 } ) ;
267272 } else {
268273 AV . _config . region = region ;
@@ -289,7 +294,7 @@ const AVRequest = (route, className, objectId, method, dataObject = {}, sessionT
289294
290295 checkRouter ( route ) ;
291296
292- return getServerURLPromise . always ( ( ) => {
297+ return getServerURLPromise . then ( ( ) => {
293298 const apiURL = createApiUrl ( route , className , objectId , method , dataObject ) ;
294299 return setHeaders ( sessionToken ) . then (
295300 headers => ajax ( method , apiURL , dataObject , headers )
0 commit comments